I really like Murach's C#. It's one of the few .NET books out there that did a good job of explaining OOP concepts in common sense language. Abstract classes really seem abstract until you start using them. What I like is that every code example in the book applies to and contributes towards an overall project being constructed.
The books I tend to learn from are the ones where you can apply the concepts or code examples to one of your own projects. I like the books that create a unified project throughout the chapters instead of building a lot of isolated examples that seem very hard to piece together as a whole.
I could never get through the Jesse Liberty books. Many people rave about his books, and he is the most popular .NET author out there, but I find his examples to be a bit esoteric.
The wisest people are those who are smart enough to realize they don't know it all.