When you compile your kernel, you can use the
command to configure it. Most options can (with some limitations) be either compiled in, compiled as a module, or not compiled at all.
Compiling as a module has two main advantages. Firstly, when you are not using a feature, the majority of the code for it isn't loaded into memory, meaning that a small amount of RAM is freed up (for each module). The second advantage is mostly for developers: the module can be reloaded for testing without having to reboot the machine each time you test it.
Compiling a feature into the kernel, on the other hand, means that you don't have to load it separately from disk, so you may get a minor speed boost on startup (for each module), particularly on older systems with slow disks, or diskless/thin-client machines with networked disks.
Removing an option means that you can't use that feature (which can make your computer unusable if you're not careful), but it may also speed up other (dependant) parts of the kernel as it means that some checks in the code can be skipped. It also makes the kernel's compile time shorter.
The performance effects are all quite minor, but can add up significant amounts if applied over a large number of modules. Most distributions make almost everything a module, which is a reasonably good choice in most cases.