WINDU will analysis the database for a number of items that PTC feels could cause issues when doing an upgrade or just running. The list of checks is too long to elaborate here. I would suggest that you just run WINDU with the all option and see what the results look like. I run mine every 2-4 months just to be sure there is nothing headed in the wrong direction with the DB.
WINRU will automate the repair of certain problems identified by WINDU. It is recommended that you consult with PTC tech support before running WINRU.
The upgrade checks MUST be run before doing an upgrade and all errors MUST be corrected, warnings should also be corrected. There are some warnings/errors that you can actually ignore as the table in the DB is no longer used.
9.1 to 10.1 or 10.2 or even 11, will be about the same level of complexity. When I went from 9.1 to 10, I had to deal with new hardware as 9.1 was on 32-bit machines. I migrated the 9.1 Oracle to a new 64-bit server a few months before the 10.0 upgrade. The users noticed the improved performance immediately!
Your company needs to decide which upgrade path makes the most sense for you. I had planned on going from 10.0 to 10.2 but got delayed so I am now planning on a 11m010 upgrade for later this year.