Outsourcing companies using a per-hour/day model don't just save on costs by hiring developers who are not very good at what they do, they benefit from it through increased number of hours required!
This. Over the years I've been involved in cleaning up horrible messes created by US based consulting companies using US labor. The incentive is to sell you hours, not to sell you a working product, and the outcome is predictable.
I have not doubt you can outsource your programming work to India if you do it the way companies like Oracle and Google do it - go to India, hire your own management, hire employees, and give the local managers enough authority to manage the project in their time zone.
It's the model, not the location/nationality.