I might be able to help (I'll probably get downmodded into oblivion when some of my fellow Indians wake up but ... ).
The thing is, even in India the best (or even half way decent) programmers don't work for Infosys/Wipro/TCS and other outsourcing companies, who are probably the folks you are dealing with. The second tier outsourcing companies are worse. The good people go work for Google, or Yahoo or Microsoft, (and increasingly these days on their own startups) same as in the USA. The numbers of the latter are on the increase.
The number of really good programmers is as low here as anywhere else. I know maybe half a dozen after fifteen years of working in Bangalore that I would trust my project to.
Yet another (and the most important) factor is that all these outsourcing companies are heavily bureaucratic to a degree a Westerner can't imagine.
Most of it happens because the economics dictate overstaffing. If your revenue model is N people * m $/ hr, it makes sense to increase N as much as possible on every project. Anyone who survives for long in one of these places is by definition someone who practices CYA as an artform. Anyone outspoken and/or willing to admit mistakes will be ejected from the system very fast.
So yes, when you outsource crappy work to India (and most of the work outsourced here is mountains of legacy crap code no one in the West wants to work on anymore, often outsourced without meeting or talking to any of the engineers staffing the project, often on the basis of what some slick salesman put on his PowerPoint deck, yes then you get bad people.
And that is the truth. Your experience is valid and is the norm. Working on outsourced enterprise projects, without hope of ever working on a decent codebase, is soul killing and degrading. You can't expect decent developers or managers on such projects.
When someone replies "Yes sir, I will certainly be very honest with you, sir," that is a good sign you've got one of the bureaucratic ass kissers. "Sir" is always a danger sign. When you hear something like "WTF made you say that Peter? What are you really worried about?" you have a chance.
Yes there are sharp developers and managers here, but it is hardly likely they'll be working in bottom feeding enterprise outsourcing companies. (The director level people at Infosys etc are often very sharp people, which is how they conned you into outsourcing your project to them but that is another story for another day ;-) )
Please don't outsource to India (or anywhere else) before speaking to and attaining a comfort level with engineers and other team members who will be working on your codebase. By the time you encounter these "yes sir, I'll be honest sir" types, you are already lost.
My 2 cents. fwiw.