He was speaking in Malta at the start of a two-day summit on how to deal with the humanitarian problem.
The prime minister said there was a need to "break the link between getting on a boat and getting the chance to settle in Europe".
He vowed that Britain would play a "huge and historic role" in tackling the crisis engulfing Europe.
Government sources said the UK would use £200m of aid money to help African countries deal with the migration problem.
It will also give £2.1m to a trust fund for Africa being set up by the European Commission.
And the UK is to announce an additional £275m for Turkey over the next two years, to help it cope with the migrant crisis.
As EU and African leaders gathered in the Maltese capital, Valletta to discuss ways to stem the flow of people to the continent 14 migrants drowned in the latest boat sinking.
Europe has been struggling to cope with the influx of migrants reaching its borders throughout 2015.
The UN says nearly 800,000 migrants have arrived in Europe by sea so far, and some 3,440 have died or gone missing making the journey.
Some 150,000 people from African countries such as Eritrea, Nigeria and Somalia have made the dangerous journey across the Mediterranean from Africa, arriving mainly in Italy and Malta.
But this has been dwarfed by the arrival of some 650,000 people - mostly Syrians - via Turkey and Greece.
Mr Cameron called for a new "resolve" to tackle the problem, warning that "saving lives is not going to be enough".
"We need to do much more to smash the criminal gangs that are fuelling this terrible trade in people and also to break the link between getting on a boat and the chance to settle in Europe."
"If we do those two things, alongside the saving lives and the vital humanitarian work - then we can make real progress," he said.
The prime minister said a "real partnership" was needed "with the countries from which these people are coming" to try to stem the flow of migrants trying to reach Europe.
The UK's £200m funding for African countries will be used to help tackle the root causes of the problem, as well as to provide humanitarian support for refugees.
Ethiopia, which has seen its refugee population soar from 90,000 in 2011 to 700,000 in 2015, will be given £125m.
Some £5m will go towards life-saving humanitarian assistance in the Sahel countries, such as Mali and Burkina Faso, and a £13m programme will create 9,000 jobs in Somalia.
In addition to the extra funding, the UK government will also urge the countries to do more to accept the return of migrants who have tried to enter the EU illegally.
International Development Secretary Justine Greening said: "If we are to stop people risking their lives by making dangerous journeys to Europe, we need to tackle the root causes of problems such as instability and lack of opportunity that drive people to move in the first place."
The UK has also said it will accept up to 20,000 Syrian refugees living in the camps bordering the war-torn country, by 2020.
The first charter flight of Syrian refugees will arrive in the UK next week, according to the Home Office's most senior civil servant has said.
David Cameron has said more needs to be done to "smash the criminal gangs" who are exploiting the migrant crisis.