.NET Allocation Profiler tool (with source if you want it).
"Allocation Profiler is a tool for visualizing and analyzing allocations on the GC heap. It presents the data from this log file in a variety of interesting and useful views. It can be used to verify program execution (e.g. ensure you've allocated only the objects you thought) and to detect possible memory leaks. Simply launch AP, point it at your EXE and click a button."