This book can serve both as an introduction to VHDL for beginners, and as a source of information for more advanced designers. I find it especially useful for beginners because it focuses on the synthesizable subset of VHDL, while many other books gravely sin in raving about the VHDL's "behavioral features" which makes it look like a bad idea of a general programming language instead of what it really is - a pretty good way to describe hardware.
What I liked most about this book is its good approach to robust synchronous coding, which is very important if you want to grok VHDL that synthesizes into successful hardware. I didn't like the author's style of implementing FSMs, but other than that the code is written very well. The last chapter that deals with synchronization and data transfer between clock domains is great and worths the price of the book on its own.
Of all the VHDL books I've read or skimmed through, this is only the second good one. The other is Peter Ashenden's "Designer's guide to VHDL" (of which we now have two copies at work), which is frequently referred to by the author as a reference text. So, if VHDL is important for you, I highly recommend this book.
P.S. I usually rely on a rule of thumb that a technical book with a bad index is a bad book. Well, this time my rule of thumb failed. This book has a terrible index, but the book itself is pretty good. Ahem... so as they say, all generalizations are wrong.