I hear lots of praise for Valgrind. Resorted to it on occasion, but the results were less than stellar. Other than a spew of irrelevant 'leaks' (single-allocations at start that last the life of the program, intentional and not leaks at all) it has, for me, never caught anything important.
Memory corruption errors are hard to find and I'd love a tool that helped me find them. Systematic leaks (app leaks over hours or days) would also be good to find. I've had zero luck with valgrind. Always had to resort to finding them the old-fashioned way.