I would in most cases choose to migrate to another server.
During the years there are always new insights how to best configure the system, maybe you want to rearrange drives to make it a more logical setup.
And foremost I've had too many issues with in place upgrades creating all kinds of errors.
Another great factor is that in some cases you can leave the databases on the old system in a read-only state making it possible to let the application run as long as possible.
Migrating to another server has become a whole lot simpler with the right tools.
I don't want to advertise anything but the Start-Migration function in the PowerShell dbatools module has really made a difference.