This is a great book and I cannot give it less than 4 stars. It correctly assumes that the reader is a developer using native code tools and requires a hands on introduction to reverse engineering. Now, in similar volumes, Reverse Engineering (RE from now on), is only getting associated with nefarious activities, such as breaking copy protection schemes etc. The examples and pedagogical scope of this book go much further than that, introducing concepts such as RE of file formats (extremely useful), RE in order to locate undocumented functionality and RE in order to "de-armor" malicious code.
In order to keep up with the material presented within, your x86 assembly skills must be at least serviceable, as the author uses LONG uncommented ASM listings on purpose (this is what you expect from using any tool out there). The book includes a chapter on introducing the basics of assembler but I take it that if you have even cursory experience with it, things will be much easier.
Another great thing is that, while the focus of the book is Win32, it is not particularly tied to any given tool. A lot of competing titles on the market focus on (excellent) tools such as Ida Pro and SoftICE, but fortunately the author takes a more or less tool-agnostic approach.
Obviously, due to space and scope constraints, the coverage of the material varies and yes, the emphasis is on copy protection but this is to be expected.
Writing style is concise and informal, a "no-nonsense" approach if you prefer, which only helps the book.
The only fault is that the .Net section is very terse and not as useful as the C++ sections but this can be mitigated, as there are other volumes to cover J2EE and .Net reverse engineering.
Finally, as a personal testimony, after reading this book and practicing a bit with the examples given, I found out RE tasks required in my day job to seem much easier so give it a shot, it will be worth it.