Miles -- we did a lot of performance work with 1.4.x on Postgres, and it got *really* good. And yes, we did fix a few groups-related issues, specially around calendar. Grab the very latest 1.4.5+, and remember to use the lang cache feature.
Use top and sar (from the sysstats package) to figure out where the bottleneck is. If it's RAM usage, the langcache will help wrt Moodle, but other web apps hogging memory could be a problem.
I've posted a very good Postgres tuning guide link recently on this forum. Follow it and you'll be much happier. Ah, also: upgrade Postgres to 7.4 -- the version you're using is odd and has issues. And vacuum it often, of course.
I've also posted guides on how to set maxclients in apache to match the max connections of the database, and then you'll be able to use pconnect safely. Search for maxclients
If you upgrade to 1.5, there's a handy setting that will show resource usage stats (memory, disk, db, etc). You can get it to not display it, but log in in Apache's errorlog, so you can run it on a production box, and sort and analyze the stats later. That's mighty useful for understanding Moodle performance.
Anyone keen on writing a Wiki-based guide of all this?