MySQL replication has worked well for me. i.e. use the replicated version of the database rather than the overloaded primary version.
MySQL 4.x offers query caching and that has worked *really* well for me on a site with few updates and lots of reads. Update:Gah! Just noticed your paragraph about not changing MySQL version - which renders my comment above pointless.