"Plone 3 Theming" was published in July 2009 by Veda Williams, a Plone developer for Groundwire. This book is full of all the information a developer would need to create a theme and apply it to a Plone site. Veda Williams does a great job of covering every area related to theming and mentioning additional products that developers may not already be aware of. This includes Chapter 2, which contains information helpful to all web developers, not just those using Plone. Throughout the book, Veda outlines best practices for theming, and I was happy to see that we at Six Feet Up use nearly all the same methods.
The book is for theming all versions of Plone 3. Plone 4 will be officially released this year, and fortunately, the theming process will be the same. The main difference in Plone 4 is that it uses a new default theme, but the old default is still available as Plone Classic.
If you struggle with viewlets and portlets, Chapter 7 contains information on how to override these templates, and Chapter 10 also provides a great walkthrough of overriding/changing viewlets in an actual theme. Following all the steps will help you to learn and remember how it's all done, and these chapters are then a great reference to come back to later. I really liked the comparison of viewlets and viewlet managers to an organization on page 133. Veda does a good job of helping the reader understand some of the more difficult aspects of theming. Something I would have like to have seen here was information about z3c.jbot. It has been a great time saver in my theming experience.
For those coming to Plone from a static website background, there is a bit of a learning curve to Plone. TAL is one of those things you have to learn to be able to manipulate Plone templates. Chapter 8 goes through all the TAL basics to get you started. Not only is it well outlined on how to use the different statements, there are also examples of where bits of TAL are used in Plone to help you understand how they work.
I recommend this book to Plone developers of any level. I think it's a good place to start for beginners, and a great reference for advanced developers, or developers that maybe don't know much about the theming process in Plone.