This is my first post outside of the Newbies board, so I hope I'm not proposing something stupid, like addressing a non-existing issue.
From what I read about Bitcoin, I'm guessing it wouldn't be hard to track coins going from one address to another (with many addresses in-between, that is). This basically means that if a friend sends me coins to an address, he can then monitor where I spend that money. Similarly, the police could use Bitcoin trackability to create links between people trading money at Mtgox and using it to buy drugs on Silk Road.
What I propose, then, is to create a service that anyone could operate (thus it would be harder to stop them if someone wanted to). The service would work like this:
It has a single public address to which people can send BTC. But before someone sends it BTC, they tell the service the source address, the amount of BTC, and the destination address to send fresh coins to. The service remembers this, and once it has enough coins from different clients, it sends the destination addresses the coins, but mixing the sources. After that, the service immediately forgets about all requests.
The more people using the service, the more anonymous the coins become.
Weaknesses include services being monitored (i.e. not forgetting about requested transactions), and probably other stuff, but I have to go now. I'd like to know your opinions when I come back
Let me know what you think.