You guys are clearly in good hands, but I was about, so I figured I add a few lines...
Rooting is a relatively easy process now, which gives you access to superuser (administrator) rights on your device. Basically, you then have access to previously inaccessible parts of your phone. The process itself used to be a bit complex, but now, as noted, it is fairly easy. One-click describes it.
ROM, as I am sure you all know, is a the phone operating system. The "stock" ROM is what comes with your phone, with all the bloatware that the carrier puts on it. Custom ROMs are created by Linux-heads that can have a host of specifics... you can get a vanilla ROM, that mimics what would come on the Nexus ONe (no bloatware, pure Android). Cyanogen is a popular custom ROM that has reached legendary status.
"
Flashing" a ROM is basically the process of getting the new ROM on your device.
Basically, rooting allows you to change your stock ROMs to something else from literally hundreds of options. You can get one for a build of Android not accessible for your device. Samsung user that cannot get FroYo? You get power back for yourself.
Also, you can pick and choose what you want. For example, on my wife's Hero, she has a custom ROM with only Sprint Nav, and Sprint TV. It just works for her.
Real world benefits of rooting: it extends the life of your device. Yes, you can have hardware restrictions, but rooting does allow for you give your device current functionality beyond its regular EOL.
You're able to get rid of unneeded stock items (NASCAR? Really? C'mon). You also get access to a whole library of root-only apps (ShootMe, Wireless Tether, CacheMate, etc.). Being able to sideload items is also a biggie, of course.
