Kernels: " Its a piece of your phones system that controls your phones hardware and transfers information from apps/system workings to the hardware. For instance when you get a Facebook notification and your phone rings and vibrates - What has happened is the app said to the kernel, that told the vibration motor and speaker to sound off. Make sense?" - igotsanevo4g
On a stock kernel you can only underclock, as a custom kernel will do both. Some custom roms like cm7, decks, vaelpak aosp and other aosp roms have this built in. For the roms that don't have it built in like the Sense roms then you need to get Setcpu. Its in the market plus the dev (the last time I looked) had it on his thread at xda. When testing what you can do with your speeds don't check the set on boot. You'll be in trouble if you over/underclock your phone too much with that checked.