It allows kernel modules such as device drivers, network drivers and filesystems to be loaded automatically when they are needed, rather than having to do it manually with modprobe or insmod . Similar to the screen-blanker support, you can also change the standard console beep into something completely different. A user-space daemon that can figure out what modules must be loaded to fulfill the request from the kernel. There are some good reasons for using kerneld. The ones I will mention are mine, others have other reasons.
Modules are easier for developers to test.
It cuts down on the kernel memory usage leaving more memory available for applications. Some of the things I use, the ftape floppy-tape driver, for instance, or iBCS, are only available as modules, but I don't want to bother with loading and unloading them whenever I need them. Most modern Linux distributions will detect your hardware and will only load those modules actually required. Of course, there are also reasons why you may not want to use it. If you prefer to have just one kernel image file with all of your drivers built in, you are reading the wrong document.