Spending lots of time on C++ means I haven't been paying as much attention to managed code as I did in the past, and I missed an excellent series of articles by Maoni about the GC. They are:

Using GC Efficiently – Part 1

Using GC Efficiently – Part 2

Using GC Efficiently – Part 3

Using GC Efficiently – Part 4

Go read Maoni's blog for lots of other useful information (Large object heap, etc.)