When a mesh is smoothed, every selected vertex is moved towards the average position of its neighbors. Is there a way to do the opposite, given a mesh with bumps, curves and corners, to move selected vertices by small amounts opposite of what mesh smoothing would do?
If you're looking to make a model more low-poly, then try using the Decimate modifier.
If you're looking to reverse the Subdivision Surface modifier, try the Decimate Modifier on Un-Subdivide mode. I find that you should usually double the subsurf level in the decimate modifier.
One of these Suzannes has been subdivided twice and then un-subdivided four times with the Decimate modifier. How well do you know your Suzannes? Which is which?
Also take a look at a smooth-shaded version:
Original face count: 500; processed face count: 699.