You are guessing that even with 51% of the network hashrate, an attacker can still not benefit from invalid transactions. However, the usual idea of a 51% attack is not to create invalid transactions, but to remove valid transactions, as if they had never happened.
For example, if Sam makes a valid transaction in payment to company XYZ, and then receives the item or service they paid for, having 51% of the network hashrate may allow them to go back to the block before they made the payment and create blocks that are similar to the existing blocks but do not include that payment. If they continue producing valid blocks until their chain is the longest, then the rest of the network will use this chain and continue adding blocks to it. This would mean that everyone else in the world would see the blockchain without problems with the correct balances, apart from company XYZ who provided the item or service. That company would now find themselves without the payment, as it would now appear never to have been paid in the first place.
EDIT: As explained in dchapes' comment below, the original transaction may still be held by other nodes, who would simply add it to a later block once the attack is over (so company XYZ would see the payment disappear, but then reappear later). In order to prevent this happening, Sam would have to include a new transaction which spends (at least some of) the money elsewhere. Provided the input address then has less than the required amount to validate the old transaction, the old transaction will be rejected by the network and company XYZ will never receive the payment.
2Just removing the transaction doesn't acomplish much, it can just be re-added at a later time by anyone that has it. So the attacker would typically try to move to a block chain where the same output is spent elsewhere (e.g. to an address they control) in order to make their original payment a double spend which will never validate. – dchapes – 2014-04-14T15:35:58.637
2So to put it another way, the goal of the attack is to remove valid transactions and replace them with other valid, but conflicting, transactions. – Nate Eldredge – 2014-04-14T19:20:29.390
@Nate Eldredge that summarises it beautifully. – trichoplax – 2014-04-14T19:22:31.200