Compiling kernel - and packaging it the Debian way -

The latest stable Linux kernel is 3.2.7

Prerequisites:

The user should belong to group src and the following packages should be installed:
wget tar bzip2 build-essential libncurses-dev kernel-package fakeroot

Compiling and packaging:
cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.7.tar.bz2
tar jxvf linux-3.2.7.tar.bz2
cp /boot/config-$(uname -r) /usr/src/linux-3.2.7/.config
cd linux-3.2.7; make menuconfig
make-kpkg clean
fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image
sudo dpkg -i ../linux-image-3.2.7_custom.1.0_i386.deb
Tips:

To optimize your kernel further you might like to try make localmodconfig instead of make menuconfig, it should strip unused modules from your kernel config.
Caution: unplugged devices won't have support in kernel anymore.

If your machine has multiple cores you might also want to add the following line to /etc/kernel-pkg.conf before compiling:

CONCURRENCY_LEVEL=3   ##LEVEL can be set to number of cores x2