Simply put, a kernel is a bit like the phone's manager. It enables apps to work with the phone's processor, memory and hardware. It's in charge of all the running processes, how memory is allocated and used and how the hardware is resourced. Different kernels boast different abilities and functions, e.g. in under/over-clocking for power and performance, although some ROMS offer these too, as they come with their own kernels or modded versions of others.
You can't use just any kernel. It has to be compatible with your phone and ROM/source code. Some will be compatible with Sense, some will work on Android-only ROMs and specific OS versions.
Overclocking should always be done with some caution, especially if you're going to clock it at a level where the processor gets hot. This can lead to your phone temporarily misbehaving or even permanently damaging it. It will also reduce the lifespan of your phone and battery.
And overclocking to the maximum amount is never a good idea, that's a quick way to ruin your phone. Unless you're heavily into gaming on your phone, then I can't see much point in overclocking; the stock speed on the Desire S should be plenty enough for practically all the apps available for it. If you're going to try overclocking, then I'd go slowly and in small amounts.
SetCPU has profiles so you can configure the CPU to run at various speeds according to various parameters, e.g. temperature, battery level, time of day, etc - good if you want to get more out of your battery throughout the day, e.g. by underclocking.
See this link for more on how SetCPU can be used with a custom ROM.