How can I retrieve the solidity code of an already published contract in the mist wallet?
There is no general solution for this because the solidity code is not published on the blockchain. On the blockchain only the resulting byte code is published. There are different block explorers like ether.camp that offer the option to upload the solidity code. They can use the solidity code to verify that it indeed matches with the byte code on the address.
There is one project that aims to do this automatically by scraping github repositories for source code that fits to published byte code.
See source at https://github.com/comaeio/porosity It does exactly what you need.