Please can anyone recommend a quick checklist / best practice guide to help us avoid simple (but subtle) mistakes that cause could cause memory leaks in .net apps
I find
One of the many good things you can do to manage memory effectively.
Call dispose on any object that implements IDisposable wherever possible especially on the DataSet or DataTable object.
Better still use the using{} constructs on these objects.