Bush doesn't get controlled by the army generals, because the army generals actually had much better ideas about the Iraq war than the Bush administration does. It's actually quite the opposite: the fact that the bush administration didn't listen to the military that was the problem. Generals (most of them, anyway) told the administration that much larger numbers of troops would be needed than what the administration thought. There were concerns about after-invasion insurgencies. It was people in the administration like the secretary of defense, donald rumsfeld, and deputy secretary of defense paul wolfovitz, and perhaps chaney, who mostly pushed the argument that Iraq would be a quick and painless little war, kind of like the first Gulf War.
*
EDIT: Yes, zeus, you're on the right track. The House of Representatives (lower house of congress) writes up a budget for every year, allocating $$ for various things, including spending on military. The senate can then vote to approve it or not (according to US constitution, the senate cannot originate any expenditure bills, only the House). The president comes into play because he usually proposes the budget, outlining what he wants to use it for (in this case, to blow billions of dollars on the Iraq war).