A Wiki entry to Simplygon explains some algorithms that can be used to automatically create LOD (Level of Detail) meshes.
The main principle is to find edges (and faces) that can be joined to reduce the number of polygons in a mesh.
One simple algorithm is to find edges that can be reduced (removed) with minimal effect on the topology of the original mesh - for this you need some sort of metric to compare the original and the reduced mesh - to find out “how much” the mesh has changed.
The more complicated algorithm is to create a NURBS surface from the original mesh and then use a resample algorithm to create a new mesh with less polygons by using a triangulation algorithm for NURBS surfaces. So basically you will “re-mesh” an object - best would actually to define the object using NURBS in the first place