For example, the most common type of kernel modules are device drivers, which allow the kernel to access hardware connected to the system.
Without modules, we would have to build large kernels with all possible anticipated functionality already compiled directly into the kernel image. Besides having larger kernels, this has the disadvantage of requiring us to rebuild and reboot the kernel every time we want new functionality.
Sometimes modules are provided in binary only form, which might be in violation of Linux's GPL license. [1]