While they don't usually host ROMs directly, you may find that they have software useful for upgrading stock ROMs, such as Samsung's tool Kies. If you want to upgrade and stay stock then you should try official methods first.
Google Flagship Updates
Google hosts update packages for the flagship Nexus devices at
http://android.clients.google.com/packages/. You can't browse that link directly, but web search is your friend here. Search for that link plus the code name of the device and the version you want; for example, searching
android.clients.google.com/packages crespo ics results in a lot of pages with this link -- the OTA Ice Cream Sandwich update for the T-Mobile Nexus S. Links for various "factory images" for Nexus devices can be found here.
Probably the first place you should look after trying the official route is the XDA Developers' forums. Stock ROMs are usually posted in the General sub-forum for your device, and custom ROMs in the Android Development sub-forum for your device. No guarantees.
They don't have dedicated subforums for all devices, so if you have a less-popular device you should use the site search instead of the subforum search.
The first and arguably best alternative ROM of them all. Extensive tutorials on rooting and flashing CyanogenMod on a large number of phones.
You may or may not want to check RootzWiki before XDA Forums above. Developers tend to move from forum to forum and RootzWiki provides devices for the best developers so a lot have jumped on board.
They have sections for many devices and for those that don't there is a General section. The forums tend to be divided into 3 sections per device (not always): General, Development (ROMS and such) and Themes.
Many developers publish their custom ROMs in ROM Manager and even provide OTA-style updates through it. Naturally, these ROMs can be easily flashed through ROM Manager / ClockWorkMod Recovery as well.
This app is a front-end for the popular free Android file hosting site, Goo.im (formerly Goo-Inside.me). It allows for downloads of ROMs, Google Apps packages, kernels, apps, and any other file available via the website.
This site often has ROMs for more obscure devices, as well as the popular ones.
This site provides a long list (about 800 pages) for all kind of devices, including Android, Blackberry, Symbian, and more. It misses a filtering mechanism, unfortunately...
In this list you can filter by device, Android-Version, developer.
Grouped by vendor, then device. Seems to be quite up-to-date and quite complete -- for sure one of the best resources.
Similar to Android Forums.
This site posts stock Samsung ROMs from all over. It does require you to sign up.
When in doubt, do a web search. Make use of quotes (e.g.,
"vibrant" "stock 2.2.1") in order to narrow the results and find what you need.
A collection of shipped ROMs. Contains ROMs for 40-odd devices.
Samdroid is the primary hub for custom ROM development for Samsung Galaxy Spica / Portal / Galaxy Lite / GT-i5700. It hosts SamdroidMod, SpicagenMod, LeshaK's modded kernel, and a swath of modded kernels and other mods for the Spica.
Translated from a popular Chinese ROM, MIUI is a highly customized version of Android with a large base of customization and theme options and a strong iOS aesthetic. Available for many devices and in both Froyo (2.2) and Gingerbread (2.3) options.
Android Open Kang Project (AOKP) is just like Cyanogen Mod (CM) a Android Open Source Project (AOSP) based ROM. AOKP focuses on providing extensible settings with the disadvantage that less devices are supported in comparison with CM.
Provides a selection of ROMs, currently only for the Motorola Milestone 2, ranging from stock ROMs to CyanogenMod, plus several kernels and tools. Going a level up one might discover other interesting downloads.