C# in Depth, by Jon Skeet is an excellent book for existing C# developers who want to take their skills to the next level.
This book is a great resource for experienced beginners who want to gain a deeper understanding of the "hows" and "whys" of some of the more advanced features of the language and even proficient developers will learn many of the finer nuances of C#.
Part I of the book provides some background and history on the initial development of C# and also reviews some of the key features of the language.
Part II discusses the enhancements made in C# 2.0 (which was released along with Visual Studio 2005 and .NET 2.0). These features are introduced in such a way that shows the natural evolution of the language and how the features solved issues or eased development compared to C# 1.0.
Part III then applies the same approach to introducing the many new language features in C# 3.0 (which was released along with Visual Studio 2008 and .NET 3.5).
What I really like about this book is how it presents the features of C# as an evolution and explains not just how to use the features, but why the were added in the first place. For those of us who have been working with C# since the beginning, it is very refreshing to take a step back and look at the big picture and see how we got to where we are. For the beginning developer, it's always helpful to understand the context in which a feature is introduced and what types of problems it was intended to solve.
- Ken