I'm pretty sure aptitude allows to set packages on hold, either through its interface (a bit clumsy for my tastes), or via a command (aptitude hold package_name ; unhold to remove the hold).
There should be other ways around the problem, of course (dpkg or dselect). Then again, it's not as if I update packages *that* often, being on stable and all.
