It's difficult to have 100% uptime guaranteed, but having multiple servers spread across multiple providers can get you close.
The trick is letting your DNS know which IP to serve your site from. My DNS provider has a failover system that monitors my sites; if it detects any downtime, it automatically serves up a secondary IP address for requests to my domain.
Of course, this requires having an infrastructure in place to ensure the content is synced across multiple servers but if you're in the game for a failover system like this I'm guessing you've already got something like that in place.