My old laser printer (a Samsung ML-7300N) had gotten cranky... the duplexer had added an autowrinkle feature, and about 5% of the time the grinding and gnashing noises would be joined by a crinkling noise, and the sheet would come out wrinkled, often quite badly. Sometimes it would wrinkle badly enough to jam the duplexer.
Hey, I paid a while $130 for that thing at a swap meet, just a few years ago!
Anyway, it seemed like time to replace it, so I'd been shopping around for a new laser printer with a duplexer. Mostly they're quite pricey -- generally, the people who buy cheap laser printers aren't looking for automatic double-sided printing, but I print lots of stuff (including multi-hundred-page datasheets and user manuals), and I like to keep the volume of paper down -- but it turns out that Brother has a few cheap models with duplexers built in.
I ended up getting an HL-5250DN, $250 at the local Office Wossname. Set up, plug in power and Ethernet, fiddle with CUPS, discover that there's something screwy with my local DNS, work around that, and hey presto -- a perfect test page from CUPS at 600 DPI, FAST!
So far, I'm quite happy with it. It's fast, and reasonably quiet, and, unlike the old Samsung, it handles plain text properly, so "ls -l | lpr" doesn't lose characters into the margins. I haven't tried 1200 DPI printing yet, but that's not a feature for which I expect to have much use (if I want to print fancy graphics, I'll use the inkjet and get color).
The one drawback is that the paper tray only holds half a ream. Its big brother has a full-ream paper tray, but costs twice as much, and for that kind of price difference I'll just feed it half as much paper twice as often. (Would a printer with 1500-sheet capacity be a triream?)
Update: one other problem... the printer identifies itself as BRN_84DB1E, which, owing to the underscore, isn't strictly a legal host name. Linux doesn't seem to object to this; bind gives an error in the system log, but seems to add it correctly -- at least, nslookup finds it -- but if I try to ping it (or otherwise look it up through the normal name resolution system) on the FreeBSD system, I get an error related to the name lookup. This explains why I couldn't get it configured on the server. With the printer configured on the (Linux) workstation, I can print from anywhere... with the possible exception of Windows (got to check my Samba configuration).
Later: OK, I installed the fancy Windows software on the lab machine, and used it to reconfigure the printer's server function... changing the underscore in the host name to a hyphen, and changing the DHCP timeout from 1 hour to several days (so's it doesn't lose its IP address & host name when it powers down at night). Now, I think, everything's happy.