Valgrind is wonderful, but I'm more excited about the Address Sanitizer work going into clang.
http://clang.llvm.org/docs/AddressSanitizer.html
It catches more stuff than valgrind, and only slows a program down to ~half normal speed.
It requires compile time instrumentation, but I'm usually ok with that.