Cameron's speech sparked a row even before it was delivered in Hampshire, when its text was released.
Noting the tough language in the speech, Business secretary Vince Cable termed it as ''very unwise'' and said the policies outlined were not agreed within the coalition between the Conservative and Liberal Democrats.
Citing the abuse of student visa system that had prompted a tough stand on immigration, Cameron said: "Want to know how ridiculous things have got? An Indian organisation which helps people get student visas has put up a massive billboard in that country".
"It's got a picture of London bus and the words ''get a free ride to the UK'' emblazoned across it".
Britain had suspended issuing visas in north India among places in south Asia last year when a large number of visa applications were lodged.
Immigration officials have launched a crackdown on bogus colleges in Britain that sponsor students on short-term courses who allegedly use the visas as route to entry into Britain.
Cameron mentioned several figures to substantiate his point that the visa system did not work during the previous Labour governments.
He said the coalition government was committed to bringing immigration down to "tens of thousands instead of hundreds of thousands" every year.
However, Cable said: "The reference to the tens of thousands of immigrants rather than hundreds of thousands is not part of the coalition agreement, it is Tory party policy only".
"I do understand there is an election coming but talk of mass immigration risks inflaming the extremism to which he and I are both strongly opposed".
Elections to local councils are scheduled for next month, when coalition partners Conservatives and Liberal Democrats will contest against each other.
Cameron's speech is seen as a pre-election exercise intended to appeal to Conservative voters.
Before setting out his government's policy in tough terms, Cameron lauded the contribution made by immigrant communities from the Indian sub-continent, and added that Britain now wanted "good migration, not mass migration".
He said: "Our country has benefitted immeasurably from immigration. Go into any hospital and you'll find people from Uganda, India and Pakistan who are caring for our sick and vulnerable".
"Go into schools and universities and you'll find teachers from all over the world, inspiring our young people. Go to almost any high street in the country and you'll find entrepreneurs from overseas who are not just adding to the local economy but playing a part in local life," Cameron said. But, he also added that for too long, immigration had been "too high".
He said: "Between 1997 and 2009, 2.2 million more people came to live in this country than left to live abroad. That's the largest influx of people Britain has ever had... and it has placed real pressures on communities up and down the country. Not just pressures on schools, housing and healthcare though those have been serious... but social pressures too".
Acknowledging that Britain could not limit immigration from within Europe due to its membership of the European Union, Cameron said the focus is on immigration from non-EU countries such as India.
He said: "(When) it comes to immigration to our country, it's the numbers from outside the EU that really matter. In the year up to June 2010, net migration from nationals of countries outside the EU to the UK totalled 198,000. This is the figure we can more easily control and should control".
Cameron reiterated the measures announced by the Home Office recently applicable to forced marriages, sham marriages, settlement of non-EU professionals and students.
The Labour party accused Cameron of "not being straight with people" over the issue.