Is there an unsubdivide function in Blender?
You can use the 'Decimate' modifier set to 'Un-Subdivide' mode:



Increasing the number of 'Iterations' will increase the number of times the modifier un-subdivides the object.

This works particularly well with quad based geometry. Below, the monkey on the left (that had a Subsurf modifier applied) has 8,000 vertices, while the un-subdivided monkey on the right (with 2 iterations) has 2000 vertices, with all details preserved well.