Alexandrescu and Stroustrup's books will teach you a lot and open you to what is possible in this amazing language.
Weather you will use those techniques in your project however, depends on the project, your team, your clients, etc.
I agree that the metaprogramming stuff in C++ is not something for beginners.
Or even for most programming problems, in general!
Templates should be used when you are writing a container class. That's about it. Using them for crazy hard-to-read and hard-to-debug metaprogramming purposes is just irresponsible.
For further questions, refer to the C++ Frequently Questioned Answers.
And the subset argument, although it has some truth in it, is misused a lot. Sure, I do not use all of the C++ features, but how can you choose a subset well if you do not have at least an idea of most features? And the well-chosen subset can be different from project to project. I see C++ in a similar way to a large toolset (I mean a metal/plastic/wood toolset, not a software toolset). You don't need to master all the tools in a toolset to do a particular job, but you should have an idea of most of them.