What is a Zone, you ask? It's an execution context that persists across async tasks. Brian says:
Having execution contexts that span asynchronous operations allow you to do all sorts of neat things. Most notably: provide long stack traces.
With Zones you can trace back all the way to where the error originated.
Zone.js will be built right in to AngularJS in the future, and by making it a standalone library, the Angular team has allowed other framework and library authors to use it as well.
Want to learn more? Get it straight from the horse's mouth: