If I were to buy one and only one book on C++ templates which one would you recommend ? And why ?
C++ Templates - The Complete Guide. By two very active members of the C++ community, well-written, covers everything in the current C++ standard you are likely to want to know.
I'd buy the latest edition of Stroustrups C++ books, because that is the ultimate language reference.
C++ Templates: The Complete Guide is the book - although it is a bit aged (in the sense that compilers have changed since - e.g. some of the example code in the book did not compile with VC++ 2005), AFAIK there is no newer.
Alexandrescu's Modern C++ Design also contains very interesting and wild stuff about things you can do with templates.
It is not a standard template book, but it shows the beauty of templates for metaprogramming with C++. This I would recommend as a second book to learn the depths of template programming with C++:
I like Andrei Alexandrescu's Modern C++ Design: Generic Programming and Design Patterns Applied better than "C++ Template Metaprogramming" -- it's the book I learned templates from, even though it's not presented as a beginner book. It's certainly not for beginners in programming, but it's a fabulous way of exploring what templates are really good for with practical examples that will blow your mind.
I spent a week on chapter 3 and got the most wonderful dreams from it, and then never viewed generic programming the same way again.