There are two common solutions to high availability for web sites: DNS round robin and IP load balancing.
DNS round robin means you get different IP addresses each time you query a DNS server for the site's name; this helps distributing requests across multiple servers, and it also avoids the single point of failure you pointed out. This is the DNS answer for www.google.com
(when asked to one of the authoritative name servers for the "google.com" domain):
> www.google.com
Server: ns1.google.com
Address: 216.239.32.10
www.google.com canonical name = www.l.google.com
www.l.google.com internet address = 74.125.77.99
www.l.google.com internet address = 74.125.77.104
www.l.google.com internet address = 74.125.77.147
Another common solution, which could also be used at the same time (and very likely is in this case), is IP load balancing; i.e. those IP addresses aren't actually assigned to servers, but instead to load balancing devices (or reverse proxies, or any other similar solution), which then forward the requests to one of several back-end servers; should one of those servers fail, another one would be used.
More info here:
http://en.wikipedia.org/wiki/Round_robin_DNS
http://en.wikipedia.org/wiki/Load_balancing_(computing)