Since lifehacker is rerunning How to Flash a ROM to Your Andriod Phone, I'll throw in the instructions for those of us with phones that only have internal memory.
Step One: Follow Steps One and Two
Root your phone, make a backup, and download the ROM you want to your computer. Lets put it in downloads to make life simpler.
Step Two: Download the Andriod SDK
Download the SDK ADT bundle and try to install. I have never actually gotten it to install on Windows, but that's actually no big deal 'cause all you need is the adb executable in sdk/platform-tools
ETA: Lifehacker now has a guide to installing adb.
Step Three: Turn on USB Debugging (Possibly Optional)
I'm not totally sure if it's required, but it's not a bad idea. On newer andriod phones: system-settings->About-phone->Build number. Tap "Build number" 7 times. Congrats, you've now got developer options. (This is also useful if you accidentally delete your photos and therefore need to restore 'em via side load). In developer-options, check Andriod debugging,
source: Andriod Central
Step Four: Put Device into Sideload Mode
- Reboot your phone into recovery mode
- head to Advanced-> ADB sideload
- wipe caches
- start sideload
see teamwin for more instructions (they're pretty generic)
Step Five: Sideload
- open a shell of some sort
- go into the directory containing adb (this is optional if you properly installed it-then it should be in your path)
- type adb.exe sideload /path/to/rom
- hit enter and wait