You are correct that some carriers/manufacturers don't like people tinkering with phones. Custom ROM's are custom firmware images for the phone. So if you have a phone that has four or five pre-installed apps from the carrier, you could (theoretically) install a custom ROM on the phone which gives you a similar look and feel to the version of Android already on your phone but without the pre-installed apps. Or... you could load a custom ROM on the phone with the newest and greatest version of Android even though your phone may not be slated to get this version.
A custom ROM, in this context, is similar basically just the firmware containing the operating system. In that sense it would be similar to loading Windows 7 on a computer instead of Windows XP.