The attack happened in a queue outside a police recruitment centre in the Kurdish city of Irbil.
“I was waiting in the queue to register my name in the police force. All I can remember is a huge explosion from behind which lifted me off my feet,” wounded 17-year-old Abdul-Razaq Sarmab said from hospital.
“The scene was like a slaughterhouse with body parts everywhere, heads, hands, eyes. It was terrible. Those who are doing this are animals because it is all against Islam.”
In a separate attack in Baghdad, a car bomb killed nine Iraqi soldiers and injured 17 people.
Insurgents have stepped up their attacks since Prime Minister Ibrahim Jaafari unveiled a partial cabinet line-up last week.
Since then more than 200 people have been killed, both civilians and members of security forces.
In Irbil, the bomber set off explosives next to an office of the Kurdistan Democratic Party (KDP), after mixing with a crowd of men waiting to enlist in the police.
Local authorities said 46 people died, while the US military put the toll at 60.
It was the deadliest attack since 125 people were killed in a suicide bombing south of Baghdad in February.
A month later, 51 people were killed in an attack in the northern city of Mosul.
The al-Qaeda-linked group Ansar al-Sunna claimed responsibility for Wednesday’s attack, which came three days after a suicide bomber killed 25 people at the funeral of a KDP official.
The KDP is one of two main parties in a Kurdish coalition that came second in the January’s landmark election.
The US military continues to suffer fatalities from the insurgents’ campaign.
Two American soldiers were killed in separate explosions in Baghdad on Tuesday, bringing to 1,583 the number of US troops killed in Iraq.
The Pentagon also announced it had found the body of a second pilot killed in the crash of two fighter jets on Monday.
NBC News reported the US Marine Corps F/A-18 aircraft jets had been involved in a midair collision.
A new poll has shown domestic support for the US-led war has slumped.
A USA Today/CNN/Gallup poll said only 41 percent of Americans approve of the war, the lowest level since the 2003 invasion.