Done right, outsourcing can save money overall. Done wrong, it's a headache for everyone, and an arguable pouring of money into a bunch of wasted spin.
Ultimately, for any project, it comes down to planning and management as well as execution. You can hire a room full of $100/hour US programmers who also will not get anything done if they aren't given any direction. Similarly, if the skills of the team don't match the work to be done, it's wasteful for a whole different reason.
Just because a developer in India (or Manila or Singapore or in Russia or whatever) is getting paid a fraction (third, quarter, fifth, tenth, or less) of what a similar developer in the US or Europe might make doesn't mean it's a low-cut rate in that country, nor does it mean that it hires less capable talent. Even in the US there's a spread of relative wages because relative cost of living changes.
Others have pointed out that the example $14/hour is a lot in some places. In those places, you're potentially getting the topper talent. It's up to the reader, manager, or whatever to judge whether the talent is comparable; whether comparing Saint Paul to San Jose, or Milwaukee to Mumbai. And that judgement should probably weigh in some of the time zone, cultural, and other geographic-based differences, as well as the experience of the individuals and groups involved. No matter where one looks, one should hire the right skills for the task.
I worked with one outsourcing group that had an interesting approach. Rather than stick people to a task for which they may or may not have the appropriate skill, a team is assigned and when a task comes up, someone capable would be selected from the crowd of waiting talent. The billing was only for the people working, not for the people waiting, so it was a bit of a win-win. If your plan and workflow are such that a bevy of developers can just pick a task to finish, instead of arbitrarily assigning tasks because tasks need doing and developers are waiting, then it doesn't matter where the developers are sitting. I've worked successfully with "in" and "out" sourced groups in this fashion; a developer will look at the tasks that need doing and pick something they can do well. (Yes, of course, some of the "low hanging fruit" constantly picked the "easy" tasks, or just didn't do well, but that had a benefit of removing the "easy" tasks from the list so the "better" devs could focus on the "harder" tasks.)