Debian has stable, testing, unstable, and experimental repositories.
If you only enable stable, then you are signing up for very outdated software.
If you add `testing`, you get quite a ways towards having an up to date system, while still not having to worry too much about odd bugs.
Adding in `unstable` gets you about as close to up to date as you can get without compiling the source yourself.
Experimental is good to keep around, but in my experience most things skip it and just hop straight to unstable.
The beautiful thing about Debian compared to Ubuntu is that it actually is a rolling release system. Ubuntu users have to worry about what version they are on. With Debian, you set what track you want to follow and just remember to install updates as they become available.
Because it's a rolling release, you're much more likely to catch small issues and be able to isolate what package is causing the problem, as opposed to doing a thousand package upgrades at once and then being snagged because one of them had an install issue.