My keyboard is a) full of dust and other particles that are flying around us (hair, skin parts etc) and b) very dirty (keys are not white anymore but dark gray - except on keytops where my fingers are constantly cleaning away the dirt).
I did this to my (admittedly shocking) keyboard recently. What I did was:
Have a cloth and dustbuster ready, it could be scary (depending if you eat at your PC, length of time since last clean, pets etc.)
Take a photo of the keyboard layout if you have a complex keyboard (mine was a G15 so there's lots of special keys).
Using a screwdriver carefully pry the keys up. I recommend starting at the spacebar, as you can see how the keys are attached (usually a plastic clip and metal bar). It's easy to break the plastic clip (I did twice) but it hasn't really affected my keyboard.
I usually pop out the keys (using a simple flathead screwdriver on its side), clean them one by one (with a wet towel or dumping them into water and scrubbing later with a tissue) and with a brush I clean the space between the keys on the keyboard itself. Finally I just push the keys right in again when I make sure it is spotless.
I pop the keys out on mine from time to time, clean them with Dettol wipes, and blow out the crud with compressed air. I've been using the same Goldtouch keyboard for nearly 10 years, and it comes up nearly like new every time.
Most desktop keyboards can have their keys pried off with a screwdriver or pocket knife. This will let you really get in deep and clear out all the crap that's built up over the years. The best way to clean is probably a bunch Q-tips and possibly some soapy water.
I wouldn't recommend trying this with a laptop keyboard or the Apple chicklet keyboards; they're not designed to be cleaned in this way.
For cleaning the outside of my keyboard I've had excellent results using Mr.Clean® Magic Erasers®. Nowdays Safeway sells a store-brand knock-off product called simply Disposable Erasing Pads which are much cheaper and seem to work just as well. These are also great for cleaning lots of other things. Sorry if this sounds like a commercial....