I had a similar issue, using SMB and choosing the PS driver for the specific printer jst resulted in endless 400 page test jobs of jibberish.
I tried this slight variation on the method mentioned above and it worked flawlessly (Ricoh MP6001 and Ubuntu 12.04 LTS 64 bit)
1)install as a smb windows printer choosing a generic driver, and a "Generic PCL 6/PCL XL Printer - CUPS+Gutenprint v5.2.8-pre1" in the next selection
2)later go to properties of the printer and change the uri from SMB.... to "socket://xxx.xxx.x.xxx" (x's being the IP of the printer obviously)
3.) Save changes then print a test page.
Thank you to the original poster, it's great to finally be able to print to my office printer via my Linux machine!