My feeling is that best Indian software engineers are in the US (or even Europe) already. I have great Indian and Pakistani colleagues at my company, but we had very mixed results with outsourcing.
I believe this is true also, but is changing quickly. Anecdotally I know of some pretty good engineers that are moving back home because the quality of life difference (having a cook, housekeeper, driver), and because salaries have gotten a lot better than say 5 or 10 years ago.
Like others have mentioned, the current political atmosphere is one that seems to have embraced xenophobia, thus making it harder for talent to emigrate. If you can't move the talent to the work, you can move the work to the talent. In that sense the internet is a great equalizer.
This reminds me of a quote from my international econ class in college: "You can take our tomatoes, or our workers. It's up to you to pick which you want" - Mexico to US
I've also seen very mixed results with outsourcing, but I don't know if I would blame Indian (or Polish, or Ukrainian or whatever) engineers. I think often it's just how the "mothership" works with the outsourced entity. If the process is to ship a spreadsheet of specifications and expect to get back a great product in 3 weeks, it's not ideal.
You need to be very controlling with outsourcing. You cannot just hire resumes, you need to carefully interview to ensure that they can do what is claimed and be hands on to watch the work.
There are great people in India, but you have work to find them.