I think you're looking for a "mixing" service (I've also heard it called "tumbling"). The idea is you mix your coins with those belonging to others, and send the output to new addresses in new configurations. This makes the "taint" (percentage of coins traceable back to a single address) pretty murky.
Take a look at Mixing Services on bitcoin.it. These require a level of trust, so there's a downside there.
I think the bigger question is, why do you want everything in a single address? I've found that using a deterministic wallet like Electrum makes it so that you can have lots of addresses floating around, and you spend from those as needed.
If it were me and I wanted to empty out a bunch of old addresses into a bunch of new addresses, I'd create a new Electrum deterministic wallet, and do one large transaction where the inputs are all your old addresses, and the outputs are 20 of your Electrum-generated addresses evenly distributed amounts (ie, each gets 1/20th of the amount), and then do a second large transaction with 20 new addresses each getting random amounts. The point here being to make it look like a you're mixing coins with other people, even though you're not.
I could be wrong, so you should probably wait for a better answer on here before doing this :)