Because PurifyPlus works by instrumenting all the object code, it detects errors that occur inside of third-party or operating system libraries.
The ability to detect non-fatal errors is a major distinction between PurifyPlus and similar programs from the usual debuggers.
By contrast, debuggers generally only allow the programmer to quickly find the sources of fatal errors, such as a program crash due to dereferencing a null pointer, but do not help to detect the non-fatal memory errors.
Using PurifyPlus makes the most sense in programming languages that leave memory management to the programmer.
IBM has a product called Rational Application Developer to uncover these sorts of errors.