The Views Facets module allows you to easily add faceted browsing to a view.

The module is currently fairly experimental, and is subject to change!

Approach

Views Facets uses arguments to filter the view, instead of normal filters, this is because arguments have almost all of the code needed to do faceted browsing already. This has the side effect of making the URLs for the view a bit nasty though, you can use URL aliases to make them a bit more sensible though.