My instinct is that 3 Dual-Xeon machines running RHEL will handle the load well. I would use round-robin DNS though instead of getting bogged down in high-availability clustering.
With three machines, I would setup two as the app servers with Apache, PHP, and an opcode cache like Turck MMCache. I would setup the third for your preferred database, and I would setup ADODB to store the sessions in the database instead of the filesystem (then you don't need to worry about sticky sessions).
The clustering software from RH (I think it's prob just re-packaged heartbeat software) will come in handy if you find some additional machines to be used as database slaves. High-availability software like heartbeat will allow a smooth transition in the case of failure.