This used to be the case but now we have an official implementation of Coin Control in the client, which makes this easier. Now you only need to know what you're doing.
Ah, that's right. I haven't upgraded to 0.9.x yet. I forgot that coin control was now available in that release.
So, you just need a single larger output, and a lot of patience.
Why does it require patience? Wouldn't the software just bundle up all the dust into 1 tx? Or am I wrong?
This is what he already tried to do (bundle up all the dust as inputs into a single transaction). Unfortunately, the value of each individual input is so low, and the size (in bytes) is so large, that the recommended fee per kilobyte results in a total fee that is larger than the entire balance available to spend.
If you want to combine all this value into spendable outputs without losing it all to fees, you need to create transactions that are less than a kilobyte. Then you need to wait for the transaction to confirm and repeat the process.
Generally you can create a transaction with about 5 or 6 inputs and a single output and still be less than a kilobyte.
So, if the OP has 10,000 outputs each valued at 0.000009 BTC for a total of 0.09 BTC, and 1 output valued at 1 BTC, they can sweep perhaps 5 of those 10,000 inputs along with the 1 BTC output into a transaction creating a single new output that increases by 0.000036 BTC after each transaction. 2,000 transactions later they'll have a single spendable output of 1.09 BTC, and all the dust will be gone.
I don't know about you, but I'd find the process of creating such a transaction, waiting for it to confirm, and then doing it again repeatedly 2,000 times to be a bit tedious and would find that it would require some patience.