One thing to consider, which I learned the hard way, is that if an Indian developer doesn't know or can't solve a particular problem he/she will never ask for help from their team. Ever! Because this is considered a weakness and they are afraid to lose their jobs.
I worked on a project with an Indian team and up until 2 weeks before the launch! date we were not getting anything from the team. I could not make them check in for the heck of it. Finally we propagated the issue up the management chain and they did check in. The result - next 2 weeks I was working extremely long hours, crashed completely whatever they have done and did the whole thing with 2 other developers here. No weekends, very long days, to meet the deadline. Need to mention that we lost about 2 days to revert the code to the previous state, which was stable and working properly, just needed new features to be implemented.
On few personal project, I have received code, which was not tested, showed no understanding of basic OO practices and would not scale.
I know I am biased because of my experience, but all I am saying is that it is very hard to find good developers in India. There are tons and tons of companies riding the myth that India has good developers. Remember that the decisions are made and choices are made by managers, who in many cases don't have any idea what to look for in an outsourced developer and teams.
Having a local representative doesn't help. It simply increases the price.
Find a good tech manager here and work with him/her selecting your outsourced team. It is critical to have your own tech person, who is capable of writing detailed tech requirements and also manage the team (SCRUM is best, because you will get a quick feedback).
Hope this helps to anyone who is looking for outsourcing solutions.