MD5 is a cryptographic hash function, which means it is expected to have several properties. I'll limit this answer to the properties you allude to in your question. The Wikipedia link above explains the rest.
A small change in the input should lead to a totally different output.
Given a hash, it should be infeasible to figure out the original message. This is called preimage resistance.
It should be infeasible to find another message that hashes to the same output. This is called collision resistance.
It turns out that MD5's collision resistance is weak. Thus, it is still okay to use if you are only checking for accidental corruption of a file, since file corruption will produce vastly different hashes, but we can no longer rely on MD5 to assure us that an attacker did not forge the message because it is practical for an attacker to find another message that results in the same MD5 hash. This means we can't use MD5 as part of digital signature schemes, since they rely on a hash function's collision resistance.
However, MD5's preimage resistance is still strong, so if all you care about is a hash that can't be reversed to find the original input, MD5 can still do the job. But quite often you will have other requirements in addition to preimage resistance, so the use of MD5 is not recommended [for security sensitive contexts].