A good source of advice on this stuff is the "Threading in C#" by Joseph Albahari. All the content is available online. In my opinion, it's worth to read the whole book, but yo can check these parts:
On Locking (C# Monitor);
On Mutex.
Although it does not cover .NET 4.0 new parallel constructs, it's a very good starting point.
Update: The book has been updated. Now, it covers .NET 4.0 Parallel Programming in its part 5.