well, you can check the wordpress super cache plugin. since i am not a developer i can judge.
But.
but make a rule like this, any page that is updated (like forum main page, viewtopics, viewforums, rules etc)
Should be expired.
The first user who visit it after it is renewed. will generate a cache copy in the cache directory.
After that visitor. the cache page will be served to the other users.
User should have options like this
Autoclean the expired pages option, like day, week etc.
Also caches the 404 pages.
feed caching.
etc.
its kinda tricky, but not impossible i think. I hope this gives you a head start. well give you more suggestions after its in beta if you are going to make it.
you can also check the hyper cache of wordpress http://wordpress.org/extend/plugins/hyper-cache/, which is lighter and more effective then super cache.