There are fundamentally two kinds of immigration – local job-creators and local job-competitors. The former are primarily middle and upper middle class people, who create jobs locally in terms of employing people (directly) to provide services for them – like maids, cooks, drivers, laundrymen, etc. The latter are primarily working class people who migrate in order to provide local services. They work as maids, cooks, drivers, etc.
Already existing local service providers welcome the immigration of job-creators. That means they now have the opportunity to push up their asking prices, since there is now more competition for their services. There is little economic opposition to the immigration of job-creators. The opposition to them is usually cultural – witness the rants of middle class “native” Bangaloreans like me against “koramangala people”.
Job-competitors, on the other hand are not so welcome. While they usually don’t contribute too much to the “culture” of the city, they compete directly economically against already existing local service providers. There is a clear economic rationale for local service providers to oppose the entry of more such providers, and since the local service providers are usually numerous and politically active, it is easier to oppose the entry of such job-competitors.
In the 1960s, for example, Shiv Sena started out by targeting South Indian middle class people. However, that campaign didn’t last long, since the “masses” (mostly local service providers) realized that it was economically counterintuitive for them to target middle class people. Hence, gradually over time, the rhetoric changed and the targets are now immigrant job-competitors. So you have Shiv Sena guys beating up Bihari taxi drivers, etc. And since this targeting of immigrant job-competitors is economically advantageous to the “masses”, it is likely to be more sustainable than the targeting of immigrant middle class people.