No there is not.
Work is ongoing on EthPM which would document where commonly used libraries/packages are already deployed on the blockchain. You could thus work backwards from an address to the sourcecode using this directory.
That said not all contracts will be listed and as such this is not a catch all.
Some contracts are 'verified' on sites like Etherscan and EthTools. This means that the creator of the contract has submitted the source code (to these sites) and verified that it compiles to the same bytecode as is stored on the chain.
The simple answer however is no. You can not work backwards from bytecode to sourcecode. More details on why can be found in this answer by chriseth (who created Solidity).