The main MAME project is Windows based and requires a 64bit version of Windows to run (though 32bit versions are available if you Google hard enough). To be honest, unless you have an older operating system or a 32bit CPU, stick to the 64bit version as is a little faster. You can download the latest version of MAME from here.
For non Windows users, MAME is also available on other operating systems including Mac OSX, Linux and Raspberry Pi. These builds, though not "official", are kept up to date and a list can be found here on the MAMEDEV site.
MAME for Windows has a great built-in user interface based on the MEWUI frontend. It is easy to use, very flexible and supports a lot of media files. These range from game/system screen images through to information files and files to help you filter and categorize it's many machines. However, MAME is at it's most flexible when using it from the command line and/or editing it's configuration files. This guide will help you get along with both.
In addition to the main project, there are several variants of MAME that are built off of the original code. These extra builds can be a bit or hit and miss for updates and some are way out of date. Probably the most popular external build is mameUI which has it's user interface as a standard window rather than the internal UI. This build, much like the command line version, has an awful lot of flexibility but has more of a "user friendly" approach to running and configuring the systems and software available to MAME.
There are also a lot of speciality builds around, most notably HBmame which stands for Home Brew MAME. This build runs all the machines available on MAME, as well as hacked and modified ones. These "hacks" can consist of bug fixes, graphical changes and/or gameplay updates. They also add another couple of thousand games to MAME.
MAME for Max OSX is kept up to date with the releases of the main project. You can get it from here.
Retroarch is a "plug-in" based emulator which supports many systems, including MAME. It is available on several operating systems and hardware including the Raspberry Pi. The main MAME retroarch core is kept up to date with the official MAME build. Due to the limitations of the Raspberry Pi, the cores only support earlier versions of MAME and therefore, many of the rom sets and drivers it runs, are waaayyy out of date compared to the main build. Retroarch has fantastic support for artwork and filters as you can see below. This screenshot is actually what you can see on your screen once you have configured the screen shader and added artwork.