Backbone.js is basically an uber-light framework that allows you to structure your Javascript code in an MVC(Model, View, Controller) fashion where...
Model is part of your code that retrieves and populates the data,
View is the HTML representation of this model(views change as models change, etc)
and optional Controller that in this case allows you to save the state of your javascript application via a hashbang url, for example: http://twitter.com/#search?q=backbone.js
Some pros that I discovered with Backbone:
No more Javascript Spaghetti: code is organized and broken down into semantically meaningful .js files which are later combined using JAMMIT
No more jQuery.data(bla, bla): no need to store data in DOM, store data in models instead
event binding just works
extremely useful underscore utility library
backbone.js code is well documented and a great read. opened my eyes to a number of JS code techniques.
Cons:
Took me a while to wrap my head around it and figure out how to apply it to my code, but im a Javascript Newb.