My Debian sources.list is:
# deb cdrom:[Debian GNU/Linux 6.0.3 _Squeeze_ - Official amd64 NETINST Binary-1 20111008-19:52]/ squeeze main
#deb cdrom:[Debian GNU/Linux 6.0.3 _Squeeze_ - Official amd64 NETINST Binary-1 20111008-19:52]/ squeeze main
###Stable
#squeeze
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
#squeeze-security
deb http://ftp.de.debian.org/debian-security/ stable/updates main contrib non-free
deb-src http://ftp.de.debian.org/debian-security/ stable/updates main contrib non-free
# squeeze-updates, previously known as ‘volatile’
deb http://ftp.de.debian.org/debian/ stable-updates main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable-updates main contrib non-free
#squeeze-backports
deb http://ftp.de.debian.org/debian-backports/ squeeze-backports main contrib non-free
deb-src http://ftp.de.debian.org/debian-backports/ squeeze-backports main contrib non-free
#squeeze-multimedia
#requires apt-get install debian-multimedia-keyring
deb http://www.debian-multimedia.org stable main non-free
###Testing
deb http://ftp.de.debian.org/debian testing main non-free contrib
# Testing Security updates
deb http://security.debian.org/ testing/updates main non-free contrib
###Unstable
deb http://ftp.de.debian.org/debian unstable main non-free contrib
###3rd Party
#iceweasel & icedove
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release
deb http://mozilla.debian.net/ squeeze-backports icedove-release
#virtualbox
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
and my apt preferences file is:
#for squeeze updates
Package: *
Pin: release a=stable-updates
Pin-Priority: 1010
#for stable
Package: *
Pin: release a=stable
Pin-Priority: 1001
#for squeeze backport
Package: *
Pin: release a=squeeze-backports
Pin-Priority: 700
#for icedove
Package: icedove
Pin: release a=squeeze-backports
Pin-Priority: 1001
#for iceweasel
Package: iceweasel
Pin: release a=squeeze-backports
Pin-Priority: 1001
#for testing
Package: *
Pin: release a=testing
Pin-Priority: 650 #450
#for unstable
Package: *
Pin: release a=unstable
Pin-Priority: 600 #400
I have kept lower priorities in preference for testing and unstable because they are not recommended for stable production system and may crash your system.
After setting preferences, you need to put ‘-t {repo type}’ for installation e.g.,
$ apt-get install -t stable mypkg
Reference: Apt-Pinning for Beginners