People keep throwing these terms around and causing a great deal of confusion and occasionally little arguments start over semantics. Here's some clarification to hopefully help people better understand how their phone works and communicate better the issues they're having. If people wish to help me clarify better, I'd appreciate it.
ROM -
Read Only Memory
While the term has changed a bit from it's original meaning, it's essentially computer memory that does not require power to store it's data (non-volitile). In the sense of a smartphone like the Hero, it's the Internal Memory where the OS is stored. From what I've gathered, the Internal Memory is just
Flash Memory (a special type of ROM) partitioned into two parts, one for the OS and the rest for apps to use. So, the OS partition essentially is true ROM, unless you root the phone. The software that groups like xda-developers make available are called ROMs because they're a
ROM Image. It's why you see games for emulators called ROMs because the games were originally taken from true ROM cartridges.
For the Hero this size is 512MB.
The sdcard is a larger capacity external Flash Memory card.
In a normal computer, ROM in the form of an EEPROM chip is where the BIOS is stored.
RAM - Random Access Memory
This is where current processes that are running are stored and keep the data they need immediately available to them. This is the memory you see when you run any of the Task Managers showing you currently running apps and the available memory. It's a completely different part of the phone from the Internal Memory discussed above. Data stored in RAM requires constant power and does not survive a power cycle of the phone (volitile).
For the Hero this is 288MB.