With the Bitcoin.org client if your wallet contains a lot of microtransactions, such as those coming from the free bitcoin sites, or the losing transaction payouts from SatoshiDICE, or from a mining pool with the payout threshold too low, then you've hit a scenario that the client doesn't deal with very well.
One workaround is to break up your spend into several transactions using smaller amounts. Choose a smaller amount and send that amount to an address not in your own wallet (e.g., to an Instawallet or some other EWallet). Then do another one and continue until all the funds from these small transactions are spent.
Another workaround is to import the private keys into another client that doesn't have this same problem.
It is possible this issue will no longer occur with the next release of the client (v0. since much of the database code has been reworked but there's no ETA yet on that.