Quick suggestion... Ditch Apache - move to a lighter weight web server such as nginx as you'll get better utilisation of existing hardware, especially under concurrent loads. Fastcgi based PHP is actually more efficient than compiling it into Apache. This will help with days like today where the load spikes must be quite horrid to deal with.
I don't know phpBB at all, but on a read heavy site like this caching is your friend. MySQL can also have issues scaling in highly concurrent situations particularly with MyISAM tables - but again I don't know how easy it'll be to move phpBB to another architecture. PostgreSQL, in my experience, is a no brainer on more complex sites but can be faster than MySQL when working with large data sets and/or highly concurrent environments. MySQL 5+ with query caching may also be worth benchmarking to see if it helps. Where PostgreSQL (and innodb) struggle is with paging as counting the number of rows in a table means running the full query - MyISAM caches row counts allowing SELECT COUNT(*) FROM ... type queries to be accelerated. MVCC used by Postgres and innodb don't allow for that caching, but you could use triggers to manually maintain a count and get similarly fast lookups.
It's going to be a long shot as this would involve some big tech upheavals, but it would be great to see a real time forum. I don't think I've seen anyone implement one yet, but using a 'comet' server architecture you could in theory organise a forum more like a real time chat. I could see a simplified 'reply' box appearing at the top of each page with a live stream of posts underneath in reverse chronological order. Whilst watching a given thread new posts would dynamically arrive in real time at the head of the column, highlighting for a few seconds to show what's happened. This would happen whilst you were composing a reply so that you could see and react to other posts.
Possibly a worse layout for periodic and casual readers, but it would be better on days like today to have such a stream, and it would be better for frequent posters who are trying to hold a conversation.
The same tech would also allow a real time list of other people logged in and reading a particular thread. It could also be used to implement a better version of James Allen's twitter aggregator - a great service, poorly executed in my view. I'd like to be able to personalise which twitter feeds are displayed to me, and have a real time update rather than a page refresh that loses my scroll position (as currently happens).
I know how to do all the above so know it's possible, but admit it's a little bit on the bleeding edge of things, not for everyone, and would imagine it'd be difficult given the current setup.