Scanners and Linux can be a tricky combination. Many scanner manufacturers have been less than forthcoming with their drivers. The SANE (Scanner Access Now Easy) Project has made leaps and bounds over the past few years to getting some semblance of, er, sanity in scanner drivers for Linux, there's a good chance of incompatibility.

Before buying a scanner, visit the supported scanners list of the SANE Project to verify if what's compatible and what's not.

From the SANE project introduction:

SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any raster image scanner hardware (flatbed scanner, hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The SANE API is public domain and its discussion and development is open to everybody.

I've had a pretty good experience with the Canon LiDE 20. Right off the bat, it works with Ubuntu's built-in scanner client. No configuration necessary to get it up and running.

The Canon LiDE 20 has been discontinued and replaced by the Canon LiDE 25. I can't vouch for the LiDE 25, but the SANE web site does say that compatibility is good. Price-wise, it's a little more expensive than the LiDE 20, but it's still in the same price range.