I've read two books:  

[Test Driven Development: By Example][1] by Kent Beck and

[Unit Test Frameworks][2] by Paul Hamil

The Beck book is well regarded, but I didn't get started with unit testing until I read "Unit Test Frameworks".   I do some TDD, but I also add tests to older code that I have to maintain (when I can).

Edit:  Also, once you get a handle on it, I recommend using it on a current project right away.   For me that's when the real learning occurred, and I think the "Unit Test Framework" book was a better *reference* book for this purpose.  (I was using nunit with C#).

  [1]: http://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530
  [2]: http://www.amazon.com/Unit-Test-Frameworks-Paul-Hamill/dp/0596006896/ref=sr_1_1?s=books&ie=UTF8&qid=1299895558&sr=1-1