Many military writers, in addition to our experiences in Vietnam, the Philippines and similar conflicts, teach that it is impossible to combat terrorism (insurgencies) with general volunteer troops; or even conscripts, if a draft were in place. Regular troops simply are not trained for this particular type of combat. Our second major mistake is trying to "fight" in a mostly defensive mode.
The only way to fight insurgencies is with counter-insurgencies -- specialist forces such as Army Rangers, Navy Seals or even the British SAS. Remaining on defense, even with specialist forces, also is doomed to failure.
We must go on the offense taking the war to the terrorists using adequately numerous, yet small squads of specialist forces, OPERATING AROUND THE CLOCK, in conjunction with Iraqi intelligence. Only then can we root out and exterminate these killers. This tactic must be ongoing and non-stop until the job is completed.
These types of units successfully went into Mosul at the beginning of the "war" and neutralized the already-entrenched forces of Saddam Hussein.
As the country settles down to some acceptable level of normalcy, then adequately trained, domestic Iraqi forces should be able to establish and maintain security.
Then we should get out!