"Each distribution has some specific tools to build a custom kernel from the sources. This article is about compiling a kernel on Ubuntu systems. It describes how to build a custom kernel using the latest unmodified kernel sources from www.kernel.org (vanilla kernel) so that you are independent from the kernels supplied by your distribution. It also shows how to patch the kernel sources if you need features that are not in there."

If you compile the kernel for the first time and do not know which parts must be included statically and not just as a module, the kernel may not boot. But the linux/.config files adapt to a higher kernel version. So if you once compiled a working kernel, you can keep the .config and be sure that a higher kernel version will also compile and boot without any problems. I am using these way for more than 2 years and had never trouble.

And as you have mentioned, you do not need to update the menu.lst file in grub (not sure with lilo...) - that is one of the reasons I use these way:

Another reason - I like KISS! Not the band... Keep It Small and Simple.