modify contribution for price set
I've found updating contribution amounts as Ramesh says is pretty weird for us, since we use price sets and offer lots of different deals and partnerships on events... the contribution status usually changes itself to partially paid or pending refund, which we don't want. I believe it's for people who want to use civicrm for financial reconciliation but since we dont, it makes things a bit complicated.

For one-offs, I usually go to the API explorer (yoursite.org/civicrm/api/explorer) and do a contribution create, including the contribution ID parameter to update the amount and the status (to completed) at the same time.