Non conosco SQL Server 2005, ma per l'utilizzo generale di SQL preferirei sempre la replica. Devi separare letture/scritture nella tua applicazione (per MySQL c'è MySQL Proxy che può farlo in modo proxy per te), ma ottieni un sistema scalabile. (legge su slave, scrive su master)
Mirroring significa replica master-master che porta a problemi di concorrenza/transazione. Anche negli scenari master-master dovresti MAI invia query di scrittura a server diversi. A seconda delle dimensioni del tuo progetto, i passaggi successivi sarebbero l'aggiunta di più slave e quindi l'aggiunta di un altro master + i suoi slave per la ridondanza.
master --- master
| |
slave slave
| |
slave slave
| |
slave slave
Anche in questo caso invierai query di scrittura solo a un master, ma in caso di errore di un master potresti promuovere automaticamente il secondo master al tuo nuovo target di query di scrittura.