Gordon Brown said that the measures in the Queen's Speech yesterday would help Britain come through the economic downturn and prepare it for the upturn that would follow.
The Prime Minister promised "real help for homeowners and families," including a scheme to limit the number of house repossessions and make the banks' voluntary code of conduct legally binding.
A slimline package of 14 Bills – the lowest number since Labour came to power in 1997 – prompted speculation at Westminster that Mr Brown was clearing the decks for a 2009 general election. His aides dismissed such talk, saying an election was not on his mind. They said the smaller than usual list of Bills was to ensure the Government's main focus is on the economy.
Mr Brown's long-standing pledge to bring in a Bill of Rights was the biggest casualty. It has run into opposition from Cabinet ministers including the Home Secretary, Jacqui Smith. The Queen's Speech said discussions about it would continue, but there was no pledge to bring in a Constitutional Renewal Bill in the current parliamentary session.
The Prime Minister told the Commons he was personally leading a review of the Government's strategy in Afghanistan. He called on other Nato allies to ensure there was "proper burden sharing" in the country.
He said: "We're looking anew at the Afghanistan policy. It is a review that takes into account the dangers that now exist on the Afghan-Pakistan border. It takes into account the need to complement military action and the enhanced protection by helicopters and the new fund for asking other countries to provide helicopters, and proper burden-sharing."
Turning his fire on the Tories, Mr Brown said: "This is the era, as everybody can see, of 'Yes we can.' All over the world people are saying: 'Yes we can.' Only the Opposition are saying 'No we won't.' They [the Tories] are on the wrong side of the British people in taking action to deal with this downturn, and they are on the wrong side of history."
But David Cameron, the Tory leader, accused Mr Brown of reheating last year's Queen's Speech, stealing policies from the Opposition and bringing in a welter of short-term initiatives rather than the long-term changes the country needed. His measures would be "bureaucratic bungling and technocratic tinkering" and would replace one set of quangos with another.
He branded the Prime Minister "yesterday's man" and challenged him to call an election to "put this Government out of its misery".
Mr Cameron said the speech should have included a plan to reduce the future growth of public spending so taxes could be kept down in future. He told Mr Brown: "There is no recognition in the Government's programme about how the world has changed. We are moving into an age where there is no government money left and so we need public sector reform to get better value for money. We're moving into an age of massive debt so we need to mend the broken society and reduce the demands on the state."
Nick Clegg, the Liberal Democrat leader, dismissed the Queen's Speech as a "meagre piece of paper" from a "fag-end government" serving up "the same old ideas" Labour had proposed in its draft programme in May even though the world had changed since.
He asked: "Why is the Prime Minister marching about the world trying to be chancellor-in-chief of every country there is? He's supposed to be running Britain. He's supposed to be helping ordinary British families. Not congratulating himself that he's having a good recession. The Prime Minister is showing hubris when what we need is humility. What people want is less of his arrogance, and more of his help."
Mr Clegg said that lasting peace and stability in Afghanistan could only be established with a regional dimension. "The powers that encircle Afghanistan: Pakistan, Russia, central Asia, China and Iran as well must indispensably be included in any lasting settlement in Afghanistan," he said. As Britain was pulling out of Iraq it was now time for a public inquiry into the circumstances that led to the "fateful decision to invade" the country, he added.Reuse content