While it's true that sometimes a set of overloads and a function template are both suitable (e.g. the overload-or-template versions of std::pow and other math functions for integer arguments), sometimes you just can't know all required overloads beforehand.
Consider std::sort: how would you implement it as a set of overloads if you don't know what kind of iterators and comparison functors the users will try calling it with? And if they use a lambda or a std::bind, there simply isn't a mechanism to provide a function overload.