The problem is that "man" formats the text with Ctrl-H backspaces and multiple letters to make bold text. Your printer probably will make a mess of it.
One way to strip all that out is to use "col -b":
man ls | col -b | lp
The "-t" option to "man" produces Postscript output, so if your printer (or printer driver) can handle that, you are all set. Linux cups can do that:
man -t ls | lpr
Another way on Mac is to use Preview and print from there (which gives you access to gui print options):
Mac OS X Version:
man -t ls | open -f -a /Applications/Preview.app/
Got something to add? Send me email.