Basically, kernels tell the hardware how to behave with the software. The main reason to change them is if you want to overclock the processor, undervolt, etc. for battery life. Some kernels work better with different roms/phones than others. And there is specific kernels for AOSP(cyanogen, MIUI etc.) roms vs sense roms.
Radios mainly control how the 3g/1x operates. Some people report better signal/call quality with other radios. In my opinion it's best to stick with the official froyo radio.