I've always been a big fan of Reflector, allowing me to have a look in assemblies to learn new things, debug in case of problems and provide usefull information when creating bug reports. Combined with the Reflexil Add-in it's now easy to also modify assemblies yourself.
To demonstrate this, I've created a small CrackMe sample program, which consists out of nothing more then a simple password check. This is how it looks when opened in Reflector, with Reflexil displaying the IL code below it.