What's the best way to handle an upgrade or downgrade of an existing client deal?

What's the best way to handle an upgrade or downgrade of an existing client deal?

We frequently have deals that have closed where at a later date we incrementally add additional service to the same deal or remove/downgrade an existing deal.  If we add a new deal for the difference, it really starts to make it kind of messy. If we upgrade the deal, we dont want to change the original close date but would like to reflect the new incremental revenue or downgrade.  What's the best way to handle these changes.