What is and isn't preferable is hard for others to answer, but here's what I would prefer:
If it's only a handful of functions, then I would probably just implement them myself. However, like you say, you might not be able to consider every edge case (at least not immediately) and you add more stuff that needs to be maintained. Popular libraries (like Underscore.js which would be useful in your case) are made and maintained by many people (usually), and their main focus is the functionality and performance of that library. So it's much more likely they'll be able to find, and fix, any issues a lot faster than you can. It's also likely you'll find more and more things the library can do for you as your project progresses. There's a good chance there are cross-browser issues they've thought of and taken into account that you wouldn't have noticed until far out into testing, or even worse, a customer complained.
Getting to know a popular library can be a real time saver on future projects too. There's also the benefit of having more confidence in a good library, both for you and/or any employers/clients.
That being said - it's a trade-off, because most libraries include more functionality than you'll end up using, so there's wasted space causing more bandwidth to be consumed and more memory used than necessary. The bandwidth thing is mostly solved with proper caching.
Also, there are a TON of great libraries out there, for just about anything - so you can easily end up having to include many 100's of kilobytes, or even more, of Javascript if you go bananas and use too many libraries.
So to sum it up: I would prefer to outsource the creation and maintaining of utility functions to those who want to do that stuff for free, and rather spend my time and energy on the things that more directly create value for the end-user.