Cold storage has been discussed in the past on Ethereum's subreddit.

Just to give my 2 cents, on Ubuntu I use the following on the command line:

cat ~/.ethereum/keystore/<key_file> | qrencode -o qr_image.png

Add option -l H to get a code that is easier to decode. The qrencode tool uses the open source libqrencode library, and can be installed using:

sudo apt-get install qrencode

Once you have the image file, you can then print it off. (Using a wired connection to a printer, unless you're happy with the printer's levels of wireless security.)

A command line tool to decode a scanned QR code or image file is included in the zbar-tools package, e.g. zbarimg --quiet qr_image.png

The general disclaimer: You'll need to ensure you're happy with piping your keys into someone else's utility... The source code is available, but you'd need to be familiar enough with C to be able to check it isn't taking a copy of the key and then sending it back to the mothership.