- Reverse transactions that he sends while he's in control
- Prevent some or all transactions from gaining any confirmations
- Prevent some or all other generators from getting any generations
Maybe someone else can elaborate on how much impact these things have, in the short and long term.
The two last attacks only applies when the attacker have much more than 50%.
If he has 90%, he will of course get 90% of blocks as anyone not attacking the network although having 90% should.
Having 90% and not including other peoples transactions just means that they will have to wait 10 times longer for confirmations.
The only attack feasible is the first one, but it gets harder and harder for every confirmation.
If he has 50% of the network, he has 50% chance to reverse a transactions if he starts to reverse it immediately after it's sent. He can then continue on that fork, generating faster than all the others, making it the longest chain.
However, if he waits another confirmation before starting the attack, he has to generate two blocks in the time it takes for the rest of the network to generate one, so he'll need 67% at first, which gives him 50% chance to catch up with the real chain having two more blocks, and only after succeeding to create the two attack blocks he can sustain his chain with >50%.
For attacking three confirmations he'll need 75%, for four confirmations 80% etc.
For n confirmations he'll need n/(n+1) of the network (n times all the others).
Having x times the hashing power of the rest of the network gives him a x/(x+1) chance of succeeding.
EDIT:
As for generating more than 50 BTC/block, that would create a fork, no one else would include those blocks in their local blockchain.