As for finding memory leaks ... best is not to have them at all, and use automated garbage collection.
There is a widely used GC by Boehm and al.
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
It's conservative, that means it requires no changes to the C or C++ code, and is mostly accurate.
Peformance and memory usage are kept pretty small (and let me consider any arguing on this pointless)