Linux runlevel controls what processes / services are started automatically by the system (or by ?init to be more exact). The runlevel is a digit from 0 to 6 or the letter S. Runlevels 0, 6 and S are reserved for shutdown, reboot and single user mode respectively. Automation is the keyword here because any of the services can be started later manually at any runlevel.
Debian defines seven runlevels (0-6).
0 (halt the system) 1 (single-user / minimal mode), 2 through 5 (multiuser modes), and 6 (reboot the system).
Default Debian installation does not make any difference between runlevels 2-5. You may customize them to your liking. Runlevels S (single) and 1 are used for maintenance. They start services minimally to avoid possible problems.
Runlevel and boot
Your system starts with the runlevel specified in /etc/inittab. E.g. id:2:initdefault: starts the system to runlevel 2 (Default in Debian).
You may override the default runlevel with kernel parameter. When the boot menu is displayed, select the edit option. Then locate the kernel line and append space and the desired runlevel number. E.g. "kernel /boot/vmlinuz-2.6.30 root=/dev/sda2 ro 3" would boot to runlevel 3.
Runlevels can be edited manually by editing control scripts in /etc/init.d and symbolic links in /etc/rc0.d ... /etc/rc6.d. Please see the references below for instructions. Since manual editing gets tedious it is recommended that you use some kind of runlevel editor. In Debian install the package sysv-rc-conf. You may then edit the runlevels simply by opening the terminal as root and executing the named program.
You may change the runlevel also at runtime. Use only levels 1-5. Use either init [runlevevl] or telinit [runlevel]. Latter is preferred.
sysv-rc README files in /usr/share/doc/sysv-rc/.