The LEADTOOLS Document Imaging library contains various image processing and document clean-up functions. Some of them are specifically designed for OCR pre-processing. Examples are DotRemoveCommand, DeskewCommand and InvertedPageCommand.
You can try by either downloading the full SDK trial edition, or the stand-alone OCR click-once demo.
(Disclaimer: I am an employee of this toolkit’s vendor).
For example, the DotRemoveCommand can be used to automatically remove dots and specks of various sizes, the code will look like this:
RasterCodecs codecs = new RasterCodecs();
RasterImage image = codecs.Load("image.tif"));
DotRemoveCommand command = new DotRemoveCommand(DotRemoveCommandFlags.None, 1, 1, 10, 10);
command.Run(image);