Harris answer is a good bet. In some of the ancient documents however, if there are any signs of bleed through (i.e text from the back pages seeping through to the front of the pages due to soils etc.) you can expand the K-means algorithm to detect 3 distinct regions in the document: i) background (lightest), ii) bleed through text (darker), and iii) foreground text (darkest). Then to enhanced image, simply eliminate the bleed through characters.
To obtain more smoothly segmented characters (if needed), you can use the centroid values obtained from the kmeans to kick start some segmentation algorithms such as graph cuts etc, for each of the three regions.
You can eliminate the noisy artifacts (similar to salt and pepper noise) associated with scans by using de-noising algorithms geared towards impulse noise. You can also eliminate the noise by their size values (as they are usually smaller than the characters) using a simple classification system such as a KNN.
Below i have mentioned the paper link. They used MRF for restoring the degraded document.In my research this is the best algorithm and it improves OCR accuracy.
Although, some of the image enhancement algorithms works well. But artifacts, poor edges, degradation are the problems that are encountered. The improved versions retinex algorithms seems to good and provide satisfactory results. Please experiment with this techniques and let us know the results.