The easiest approach, though in my humble opinion not the cleanest, is "aptitude hold package-foo"
Or if it's just a particular version you don't want, i.e. a bugged version, but you want to upgrade to the version after that (usually only useful for testing and especially unstable users)
Code:
aptitude forbid-version package-foo=1.0.0-1
Where "package-foo" is whichever package it is you don't want to upgrade. Where "1.0.0-1" is the version you don't want to upgrade to. so package-foo_1.0.0-1 would never be installed, but once "package-foo_1.0.0-2" is available it will.
Needless to say apt-get will not respect these rules.
If you want to avoid holds and use apt-get then you will have to get into the realms apt pinning and actually pin a package permanently to a particular version.
e.g.
/etc/apt/preferences
Code:
Package: package-foo
Pin: version 1.0.0-0
Pin-Priority: 1001
This prevents any upgrades beyond version 1.0.0-0.
Finally you can also avoid some unwanted upgrades that offer to rip out half of your system by running
or
instead of dist-upgrade/full-upgrade.
But as far as the kernel goes, that gets patched in the course of security updates - you should not put it on hold if you value security and stability.