Unlike most other UNIX or UNIX-like operating systems, the source code to the kernel is available for easy tuning and upgrading. With kernels being packaged in distributions, the necessity for most users to compile their own kernels is pretty low. There are advantages to compiling your own kernels, though:
Compile a version of the kernel specific to your chipset.
Add in a new driver or security patch
Compile a kernel with modules compiled into the kernel
This chapter covers each of these situations, and also tuning of running kernels using applications like sysconf and powertweak.