But while rifling the Web for ready-made solutions I found some really involved approaches to determine the MySite host’s URL. For example checking all the RootWeb’s templates or using reflection. So posting this may save someone some time.

If you need a specific user’s MySite URL you can add this code–to keep things interesting UserProfile.PublicUrl.AbsoluteUri doesn’t include the default port: