Oddly enough, I've worked with an Indian programmer who asked for less than $20/hour (he was making $10/hour after fees from the outsourcing site) who was very competent and who got the job done well. There may have been some funny business with billing a few extra hours, but the total cost for the project was still extremely low.
I've also worked with an outsourced programmer from another region who asked for $45/hour (closer to a $150/hour equivalent in local cost of living) who was completely incompetent. (He didn't last a week; it was obvious that quickly.)
$10/hour isn't bad at all as far as living in India goes[1]. I worked as a salaried employee for about 3 years with a reputable software consultancy in India and made about $4/hour writing good quality ruby code. Let's say I lived a comfortable life with a decent apartment and a new car.
[1] It equates to about 80,000 INR per month. Compare to salaries ranging from 30,000 INR to 60,000 INR for a programmer with 3-5 years of experience.
No, you don't. It's like that bottle of two-buck chuck from TJ's that can be better than the $20 bottle of Napa's finest…
Cost is not a complete indicator of quality unless you're willing to look at it probabilistically. Low cost means you're more likely to get mediocre talent.
Ultimately though, even a good programmer can only do so much without a good client/driver. Some of the folks hiring the best out of India and still getting bad results need to look at their process and see if it's adapted to the outsourced model. It could be the process is poor or the onshore team members are poorly adapted to the offshoring model.
Outsourcing itself isn't easy. It takes skill to be able to make projects work, even with great resources.
I've also worked with an outsourced programmer from another region who asked for $45/hour (closer to a $150/hour equivalent in local cost of living) who was completely incompetent. (He didn't last a week; it was obvious that quickly.)
You don't always get what you pay for.