Exchange 2010 won't contain the option to upgrade your installation from 2007. Microsoft says that there are too many changes in database schemas and stuff, so it is not feasible. But one thing people might not understand is that you can't even remove Exchange 2007 and then install 2010. It won't work. So you have to install a clean OS for 2010 to get it running.
The good news is that moving the mailboxes is very simple. Just add a mailbox server with 2010, fire up PowerShell and use New-MoveRequest <mailboxname> for all boxes (and naturally you can do this in a loop). Exchange will put all the boxes in the move queue and handle everything. It is asynchronous and transparent so your users can continue to use the service even while the boxes are being transferred.
After you've transferred the boxes, just remove the previous mailbox server and you're done.
Naturally it's not always that simple, but if it's time to get new hardware, it would be quite feasible. And you can use the previous server for other things.
Naturally if you have clustered the mailbox, you could break the cluster, upgrade one server, move the boxes and then upgrade the others. This is not always an option, though, since some people won't take the chance that something breaks while the cluster is down.