Some things simply cannot be cached. Ad hoc reports, up-to-the-second changes, and sites where access patterns are spread across a large number of unrelated pages are all difficult to optimize using caching. For workloads like this, you can deploy a bigger database server, but eventually even those run into limits.
Therefore, many application architectures include database replication, where there is more than one database server serving out requests.