The title stands for itself.
The only tool for doing so I know of is the bitcoind daemon, but it is for from user-friendly.
A web-tool in JS would be ideal or a simple CLI tool with clear documentation.
Electrum has a gui form for just that. Also I think brainwallet.org has a web form that works offline and runs off github source directly so you can verify privacy concerns.
Edit: also see:
As referenced in Transaction signature generation
SX is a set of modular Bitcoin commandline utilities that admin types can engage with Bitcoin functionality without having to write code.
Using the Mycelium mobile app has to be the easiest method to spend funds from a paper wallet. From the app, select Cold Storage. Then scan the private key from the wallet. Then scan the QR code for the Bitcoin address to send the funds to.
Though it is an old question, I stumbled upon a great solution recently. Especially when brainwallet is now gone, I thought of updating it here. They call it Hashmal. Hashmal is an IDE for Bitcoin transaction scripts. Its purpose is to make it easier to write, evaluate, and learn about transaction scripts.
p.s. If someone has any fork of the brainwallet Github repo, please post it in the comment.
maybe it is a little bit too late, but brainwallet worked the best and I have just quickly uploaded the version I had to some file hoster: http://s000.tinyupload.com/?file_id=05407254289290446372
(I dont remember exactly, but I think this is the original zip-file I downloaded in April of 2013)