If you want to go the ultra-cheap route your best bet is probably any cheap, Linux-compatible scanner + tesseract-ocr. I honestly haven't used tesseract myself but it's definitely the most popular OCR program on Linux.
If you're willing to shell out extra, Brother makes some really excellent network printers and scanners; at my job we use a Brother DCP 7065DN which, as a network printer/scanner combo, works just fine with my Linux laptop.
You can get a standalone Brother scanner refurbished for about $150 on Amazon. It supports OCR and scanning to network, USB flash drive, etc.