Ubuntu/gutsy and (apparently) even the venerable Debian have badly broken ideas about runlevels: runlevels 2-5 are the same, all of them start the GUI (via gdm, kdm, or whatever), 2 is the default, and it's ridiculously difficult to get a sane runlevel configuration working. Sorry, Ubuntu, but this is one that RedHat got right at least 11 years ago.
Ubuntu has abandoned inittab in favour of their homegrown upstart, not in itself a bad thing. inittab was cryptic, nobody understood it, and everyone who ever edited their inittab did so with fear and trepidation, but kernel boot options should override defaults, not the other way around.
The “sane runlevels” solution presented herein actually works and has been tested, unlike a lot of what I read, and tried, in “help” forums.