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?
Yes. Use the smooth modifier with a negative factor.
An alternative method to reverse an operation is to add 2 shape keys, enter editmode with with a non-basis shape, edit the mesh (smooth it for example), exit editmode, then slide the shape key to a negative value you can then optionally apply it to the base mesh.
Unsmoothing with a negative modifier is sufficient for a roughening effect, but not to fully undo a smoothing operation. To test this, I rendered Suzanne and smoothed the mesh(factor 1.0), applied the modifier, and then unsmoothed with factor -1.0.
Another thing to try is the Laplacian Smooth modifier with a negative factor.
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.