For now, an upgrade is a way to change the protocol version of the blockchain, from a certain block onwards. For example MultiChain 1.0.1 added a new protocol version 10009, and this gives a way for older blockchains to move that that protocol version from a certain point in the chain.
We'll write some formal documentation on this soon, but the basic multichain-cli usage is:
create upgrade [upgrade-name] false '{"protocol-version":100xx}'
listupgrades
approvefrom [admin-address] [upgrade-name] true
listupgrades
Keep performing the approvefrom and listupgrades steps from different admins until the necessary level of consensus, as defined by the admin-consensus-upgrade blockchain parameter, is reached.