You can't do a SunInstall "upgrade" from 4.1.x to Solaris2. You can use the Admigration toolkit (q.v.) to help you move from SunOS 4.1.x (Solaris 1, actually) to Solaris 2.
If you're moving from Solaris 2.x to 2.(x+y) [for small values of y] then you can use "upgrade" to preserve your existing partitions and local changes (including pkgadd!!), though it runs very slowly (about 1.5-2x the time for a reinstall) and does require that you have enough free space in / and /usr - make these big when you first install! If you run out of space in one of your partitions, you can always remove some components. Those will not be upgraded and can be installed elsewhere after initial upgrade (e.g., you can remove OW, Xil, Dxlib, manual pages, etc)
There is no need to backout patches before upgrading. In 2.2, the system would back them out for you, in 2.3 it won't back out the patches but removes them without a trace.
An upgrade may not work as well as a full install. E.g., the upgrade from 2.x (x<3) to 2.3 will leave aliases for all your ptys in /devices/pseudo.
There's no need to upgrade to all intermediate releases. You can go from Solaris 2.5 to Solaris 7 in one step. But be careful in checking release notes, each release typically only supports upgrades from a few earlier releases and not all.
When you upgrade a system, you must make sure that you read the release notes completely. Often, you'll need to upgrade to new versions of Veritas, DiskSuite, etc.