Specifically about canvas. I have been looking around for a few good one.
I really enjoyed reading Dive into HTML 5 (an online, free book).
There's a new HTML5 book from A Book Apart, written by Jeremy Keith. I have it on order, haven't read it yet, but it has been receiving praise online.
Update: I've since read the book, and it is quite good. It's relatively short, but very focused on giving the essential details, enough for you to get started on.
I haven't yet read all of it since it's very new and still in beta, but HTML5 & CSS3 from Pragmatic Bookshelf is pretty good so far.
This is one of the best book:
If you want to learn
<canvas>, Mozilla's page seems quite good.
I'm going to be honest - when it comes to specific languages and technologies, I've pretty much given up on books. The landscape changes way too fast - by the time you have the book, the next release with changes is already on the way. Now, my only books are on things that might change, but if I were to read the book again in 5, 10, or even 15 years, the material is still relevant.
I would instead recommend the HTML5 Doctor blog and Dive into HTML5. There are also a number of other good sites and blogs if you go searching around, and I would stick with them - web resources will be more up-to-date and will cost you less.
Am surprised that no one has suggested HTML5 and CSS3 For the Real-World