This post has uncanny timing. Just last week I purchased, for the first time in a while, my first software engineering book whose purchase was not mandated by my university: Applying Domain-Driven Design Patterns by Jimmy Nilsson. Furthermore, I started my own blog, partly inspired by my hours of reading this one.
I tend not to have such a negative view on programming books. They can give a programmer a consistent style and technique for writing in the given language. Pouring over various internet articles for tips can lead to inconsistency, and I experienced this first-hand.
I had no formal training in VB.NET outside of following fragmented code snippets on the net. As a result, the first few months of code I cranked out at my job contained inconsistent styles...sometimes using MethodName = ReturnValue, sometimes using Return ReturnValue, etc.
Finally, I agree that while language-specific books are nice pragmatically, the books I enjoy the most are the "why", not the "how". I think the Nilsson book will be one of these. In addition, Eric Evans' classic Domain-Driven Design book was a book I carried with me to and from work and used every day.