I too would try to not use circular replication.
If possible, use a standard replication, distribute read only queries on both nodes and read/write queries to the master. Works for wikipedia, could work for you :)
Another approach could be to setup a two-node active-passive setup (drbd and some clustering). Easier on the app (it just sees a single mysql server to connect to), needs some attention on the HA side if you're not used to that kind of stuff. You don't get the performance bonus of having two different db servers.
To make a choice you need to decide if your primary interest is lowering downtime (standard replication or active/passive cluster) or achieving better performance (standard replication, circular replication, etc...) and what are your constraints (can you modify the app, and how much can you modify it, needed performance, allowed budget, etc...)
To get better performance out of your hardware (or just to compensate the lack of performance if you go the active/passive way) don't forget about memcached and similar things.