This works for me:
In /etc/rc2.d are a bunch of sym-links to startup-shutdown scripts in /etc/init.d, look for the gdm or kdm sym-links. The S,K, and numbers are used to control startup and shutdown sequence. If it starts with an 'S' it means "Start this process when you enter this run-level" if it starts with a 'K' it means "Kill this process when you enter this run-level" So when it enters run-level 2 (rc2.d,the ubuntu default) it starts with S00alphabetical and moves down the line to S99zalphabetical, running each script down the line.
no gui boot on my system: (be root)
(The S23 will probably be different on yours, ie S15gdm)
mv S23gdm K23gdm
Starting and stopping gui from command line:
sudo /etc/init.d/gdm stop
sudo /etc/init.d/gdm start
-If you use kubuntu, replace gdm with kdm
-I rename the links to 'K's so that I can easily adjust them and I read somewhere that it makes update-manager a bit happier, but I have safely deleted some w/o ill effect.
Sorry so short, but I'm on the way out the door.