Isn't an exchange such as MtGox essentially a mixing service? I might be wrong, but can somebody trace coins when they are paid to one address, possibly exchanged, and another amount is paid back from another exchange address back to you? As long as you don't pay back the coins to the same address, and amount is not exactly the same, can this even be traced through blockchain?
Well, "mixing" can be seen as different things. At it simplest, every transaction mixes up your coins a little, especially when you split or combine them. However, what makes a "mixing service" is somehow more specialised.
So, there are several differences with exchanges:
Mixing services usually have a static pile of coins, distributed over a big web of addresses. When you want to mix your coins, the mixing service can do it instantly by distributing your coins into his web transferring them to both new and existing addresses and meanwhile transfer an equal amount of coins to a new address for you by combining small parts from his web. The difference here is that you do not rely on another 3th party that also wants to mix/trade, as you do with an exchange.
Most mixing services have a fixed fee that you pay in Bitcoin. Exchanges may as well have fixed trading fees, there is another cost to consider. You will have to both make a sell order and a buy order to "mix" your coins using an exchange. Even if you make both orders instantly after each other, you will probably lose more than twice the trading fee. This is because there is always a price difference between the lowest buying price and the highest selling price. Furthermore, if you make the trades while the price is raising, it will probably cost you even more.
As Stephen Gornick already mentioned, exchanges keep logs. They usually also require you to verify your identity and this information will be bound to the logs, making the mix all but anonymous. Most mixing services do not require you to have an account at all, they just give you a sending address and ask for a receiving address to which you want your funds back.
As a final note, I want to add that with a good implemented mixing service, the user base of the mixers does not really matter. A good mixer will always have a static web that can be used for each new mix by adding your coins into it and at the same time, picking some random others to combine to an equal output. As long as this static web is big enough, the mixing will be very hard to trace.
There is one thing that could make you vulnerable for trackers. If the mixing service works instantly, the trackers could search for a new address receiving just the same amount as the amount you just spent. This is not hard to do. So, another feature that would make a good mixer, would be the option to give multiple receiving addresses and not executing mixes instantly, but taking a few minutes between funding the different addresses. Note that this can be in favor of an exchange, by which the actual mix is not logged in the block chain, so trackers need to have access to the logs of the exchange to track you.