here's a good guide:
I'll give you a rundown on compiling, the way I do it anyway.
1. get the tarball from kernel.org
2. untar it in /usr/src (so its in some like /usr/src/linux-2.6.3)
3. cd to /usr/src/linux-2.6.3 and do a "make menuconfig" to configure it ( i dont like other
methods) If you're unsure whether or not to include certain options, then make it a module, only deselect the ones you're absolutely sure you don't need.
4. After its done edit Makefile and add something to "EXTRAVERSION =", so if you add "EXTRAVERSION = -mykernel", your kernel version wil become 2.6.3-mykernel, its optional.
5.make && make modules_install
6. copy arch/i386/boot/bzImage to /boot, rename it something meaningful like /boot/vmlinuz-2.6.3-mykernel
7. copy System.map and .config to /boot and append kernel version, eg /boot/System.map-2.6.3-mykernel /boot/config-2.6.3-mykernel (remove the dot in .config)
8. mkinitrd (make sure you have the latest version) if you havent compiled filesystem/ide chipset support into the kernel.
9. update grub/lilo.conf and reboot
10. if everything's fine link the source directory to /usr/src/linux and do a "make clean". If not boot back to your old kernel and, reconfigure the source and try again, it'll recompile a lot quicker before you do "make clean".