At the moment I'm using backbone.js to render my app on the client using underscore and using ejs in node.js on the server side.
I'd really like to be able to share the templates between the client and server so that I don't need to create the template twice. What is the best way to use the same templates on the client and on the server?
You should check out the Derby project for Node.js. I believe it uses Handlebars templates to render both server and client side.
As an alternative to Derby consider Meteor this is a very impressive screencast
Alternatively here are some options for serializing your model and sending it down the wire
http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/
http://amirmalik.net/2010/11/27/how-to-share-backbonejs-models-with-nodejs