There are a lot of different ways to mirror a site (and for different purposes, such as backups/high availablity, or for load balancing/distribution). You can use scheduled data transfers or two-way synchronization, or you can have changes pushed to the mirrors as they come in via the application, or you can set up database replication, which itself can be configured in different ways, such as a master-slave setup with multiple slaves to read from but writing only to the master database, or you can set up two-way replication with 2 or more co-masters, where you write to any of the database mirrors.
Depending on the setup, you could have different storage, performance, and bandwidth overhead. Depending on the application and setup, you can also have data consistency challenges. For some applications, you may need to take advantage of table locks to ensure the atomicity of transactions. And the more mirrors you need to keep synchronized, the greater the challenge becomes. This is one of the reasons why people often choose one-way master-slave replication so they don't need to deal with this problem. Of course, if you do that, then all changes need to be written to one server, regardless of the geographical location of the end user, and you only get the benefits of geographical proximity when reading from the slave databases. But if your application is heavy on reads and light on writes, then this might be a fair tradeoff.
In many cases, webmasters and developers just aren't equipped to deal with all of these complexities. If your intention is simply to back up your data, there are easier ways of going about it (heck, your web host probably already offers a stock solution). If your goal is to provide data redundancy and support application failover, cloud computing platforms and some VPSes can provide this without you needing to get your hands dirty. Or at the very least, they provide standard, well thought out and tried and tested solutions that you can employ simply by using their hosting platform and following their development guidelines.
CDNs are another low maintenance option. They're usually targeted at static data, but they can also be used to host dynamic data or provide application acceleration. The latter would require you to code to their CDN architecture and use their API, but it's still less work and provides higher availability and redundancy than if you set up database replication or some manual mirroring solution using multiple VPS or dedicated servers.