Many Indian developers choose their field based on parental and social pressure. I've been working with students in Engineering colleges in India and a significant fraction say that they joined Engineering just because their parents told them to and/or because they want high paying jobs. It's considered undignified in some sense to not have a professional degree. This causes an increase in demand and consequently, private players and others step in to meet it. These institutions churn out a huge number of engineering graduates every year who don't particularly care about their field or their job. That's the first stage. You have a huge pool of (at best) average developers. They're entire "programming education" is four years of working on outdated technologies and a shaky theoretical foundation taught to them by (mostly) uninterested teachers.
The next stage is the service companies. If you're an A player, and these are as common in the Indian tech. community as in others though they're harder to find because the large number of people you have to wade through to get to them, you'll already have some open source contributions and contacts with other good programmers and they'll get there. The others, who are the bulk, don't have all of these privileges and don't know what to do. To their aid come service companies. These are the organisations I blame for most of the, often justified, stereotypes of Indian programmers. They hire people in bulk, give them some focussed training (since their formal education is often worthless) and then expose them to the world of cheap outsourced software development.
This is where many foreign devs and Indian devs meet and this is the "most average" of the Indian tech. crowd you'll find. They're uninterested, driven by things low on Maslow's pyramid and generally worry about things like saving face, getting promotions, pleasing managers and rising up the social and professional ladder rather than good tech.
Naturally, these people are "cheap" and "unskilled". They were selected from the larger pool for mostly those reasons.
If you've come into contact with Indian devs from good tech. conferences, mailing lists, free software projects, irc or other such fora, your experience is bound to be difference since you're meeting the ones that have gone through another filter.
The sad thing is that the education systems can crush people and make them unmotivated and uninterested. That's what I'm trying to remedy, atleast to some extent, with my latest endeavour. I've taught students at colleges and there's often some spark in them that can be nurtured. I've done corporate trainings for fresher batches at service companies and they often couldn't care less. It's too late by then for many people.