Any EPROM programmer should work fine, although I personally hate the Willem programmers I use an ancient Needham's PB-10.
Almost all programmers have a 40 pin socket, "shorter" EPROMs are just indexed down at the bottom of the socket. The software usually tells you how to insert it.
EPROM stands for Eraseable Programmable Read Only Memory. You can erase an EPROM by exposing it to high intensity UV light. As such, you can scavenge EPROM chips off junk boards, erase and re-use them. Similarly, most surplus EPROMs you buy will need to be erased. epromman.com has great prices on bulk EPROMs.
The chip you need depends on the application - the machine you're putting it in. In many cases, corrupt EPROMs can be erased and reprogrammed. Or, you can replace it with the same type of chip. You can tell what chip you need based on the size of the image file - EPROM part numbers are their size in kilobits - for example, a 27512 is 512 kilobits, or 64kilobytes.
An EPROM programmer can read, as well as write EPROMs. To verify the ROMs, you can read them into the computer and compare the checksum with the same ROM from a good MAME set. If you unzip a MAME ROM set, you'll get a bunch of seperate ROM files, usually named after the position on the original game board.
When you burn an EPROM, the programmer automatically verifies it to ensure that it was burned correctly. (at least, most programmers do...).
An EPROM programmer is a very useful tool, I use mine for all sorts of things - from fixing arcade machine boards to making my own Nintendo/Atari cartridges
One thing I forgot to mention, try to find a programmer that will handle older 2732 and 2716 EPROMs. These are very commonly used in old arcade machines, but require a higher programming voltage - many cheap new programmers omit support for these.