Possible Duplicate:
What is the difference between: Rooting, Jailbreak, ROM, Mod, etc.?
What is a custom ROM, and what does "flashing a custom ROM" mean?
Possible Duplicate:
What is the difference between: Rooting, Jailbreak, ROM, Mod, etc.?
What is a custom ROM, and what does "flashing a custom ROM" mean?
Note: the CyanogenMod and Fresh 3.5 links below are links to EVO Roms as an example - you need to find the correct ROM for your device
"Flashing a custom ROM" basically means to load a different version of the Android OS. This site actually explains it very well. A custom ROM is the full Android OS customized by the ROM builder usually to make it faster, provide better battery-life or add new features.
AOSP ROMs like CyanogenMod offer stock Android which will remove things like HTC's Sense or Sprint's Apps. CyanogenMod's ROM is one of the more popular ROM.
Other Roms like Fresh 3.5 offer a ROM very similar to the default experience (with added speed and battery-life) by leaving Sense (or whatever skin your device has) and incorporating over the air updates into an updated version of the ROM.
In order to flash a custom ROM you must first root your device. For information about rooting see Matt's comment on the OP or my original answer below:
When I had the same question this is where I found it: http://www.talkandroid.com/7686-what-is-rooting-and-why-should-i-do-it-the-pros-cons-of-android-rooting/
Depending on what device you have the rooting method will be different though. Personally I suggest reading up on your device at XDA.