An MD5 hash is a "cryptographic function." It takes an arbitrary piece of data, like an email address, and converts it to a 32-character hexadecimal string. Every time you run the same piece of data through the hashing algorithm you get the same result (which can't be reverse engineered). What that means is that your email address - a unique value - is converted to a unique hash string through this process. Its original intended use was as a security feature, but more and more, it's being used as a marketing tool.
"Hashing" an email address is a very simple process. For example, an MD5 algorithm would convert email@example.com to b41484b9161cb33b8526a1e5fd8a5fcd.
Dedicated email campaigns. Standalone third-party advertisements within publisher newsletters are still a popular way to reach your audience, but most advertisers do not want to mail to your whole list. Advertisers can send over a "hold-out" list consisting of MD5 hashes, match them to the publisher's file, and suppress the matching results. Using this approach, the parties share no actual email addresses, and since the hashes can't be converted back to actual email addresses, the hashes are useless for any purpose other than matching.
Custom audience campaigns. Facebook and now Twitter have implemented or announced the availability of "custom audience" targeting programs. Custom audience campaigns are dependent upon email hashes or hashed phone numbers for their targeting. When you log in to Facebook or Twitter, you are doing so with either an email address or a phone number. Marketers can load up segments consisting of hashed values (customer lists, for example) and when they match users, can bid for them and present an ad in the news feed or within various Twitter clients.
Email ad exchanges. By leveraging the power of the email hash, advertisers can now reach their customers with a loyalty message and their prospects with a prospecting message. Thousands of newsletters from hundreds of top publishers now feature "email addressable audiences" via hash-based targeting. Targeting only the hashes you want reduces waste and increases response rates.