I'm currently using Twitter's Hogan library and before that I was using the Trimpath library. I'm a true believer in client side templating; but they should not be abused. Here is a few arguments:
Just like with server side templates, it helps distinguishing application logic from presentation. Instead of creating a hierarchy of DOM elements manually during run time, defining a template with HTML and rendering it with data from javascript create more readable and elegant code.
I find it practical to have client side templates for repeating hierarchies such as twitter posts, blog entries, news articles, etc... The server only sends the JSON data, (through an AJAX call most of the time), and the data can immediately be bound to the template.
Template engines I have used update innerHTML with the generated HTML string. This is said to be faster than DOM manipulation, but I have never run a benchmark myself.
Desktop applications and RIAs can benefit much from client side templates. They can drive their interfaces without depending on a 3rd party solution.
We can easily have server side templates and client side templates in our projects. They can work together very well. In web projects, I would not recommend we should port our templates to the client side and only send data from the server. For example, I use server side templates with INCLUDE statements to build the entire page. One template can include another template structure to build the interface. This is a complicated task for client side templates that will just create unnecessary code and overhead.