Machine code is the lowest-level type of programming language. It is the actual program which is executed by a processor. Every processor model has its own machine code, although some processors are able to emulate others. Machine code is normally not used at all anymore, but it is sometimes useful when modifying the program part of a game. Machine code can be disassembled into assembly in order to make it easier to work with.
More non-ROM hacking specific information can be found at Wikipedia's machine language article.