I have written a script to simplify curves.
http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Curve/Curve_Simplify
It takes curves as inputs and generates new ones with fewer points.
It has two different modes.
The first (distance) is rather simple, while the second (curvature)
tries to keep the points with the highest curvature.
I guess it depends on the input-curve which mode delivers better results.
The fastest way to test it is to draw something with grease pencil,
convert that into a curve and then simplify it.
tests and suggestions are highly welcome.