In any case for the easy management of high availability I also vouch Database Mirroring, but keep in mind it has per database and if your SQL instance is already a resource intensive & transactional then you may have to consider the number of databases to include in mirroring.
Also you can have mix & match of Replication and Mirroring, lets say if you have 10 databases and out them only 4 are important for application/availability then you can put them for mirroring. Within remaining 6 database if 3 are essential support for application then you can put them in replication.
I would like to get an idea on the hardware & number of databases, capacity and any counters on the growth of data in next 3 years, based on that it will be easy to suggest the suitable high availability option for your platform.
-
Satya S K J 
Knowledge is Power, you will gain by sharing it.
SSQA.net - Invisible contributions to the users & visible success in SQL Community.