The act of modifying a compiled rom image, in which you have to "hack" into the games code. The origin of romhacking is practically unknown, and most romhackers do it out of enjoyment. Most games that are hacked are for the NES, but there are hacks out there for the SNES, Sega Genesis, Gameboy, and with the realease of "OoT: Attack of the Mokeys", there is finally an N64 romhack. Romhacks are usually played on emulators.
Romhackers use many tools, but the most important is the hex editor. With a hex editor, a romhacker can change many parts of a rom, including the graphics (allthough there are better programs for graphical hacking), text (which is usually acquainted with a table file), levels and other data. There are tools that are game specific and can speed up the process dramatically, such as level editors.
A much more advanced aspect of Romhacking is ASM hacking, in which the Romhacker will "decompile" the rom code using a disassembeler, then alter it, and "compile" it again using an assembeler. Things that can be altered using this method are aspects of the games engine, and other things that would be insanely difficult to change when compiled.
Romhacking, unfortunately, is becoming more and more uncommon...
Dahrkdiaz is probably the best Romhacker to date.