1. O SMF pode tirar partido de opcode cache como APC. Além disso, existe a query-cache do MySQL que também pode estar a funcionar em simultâneo.
2. O Apache vai criar sempre imensos problemas por causa da enorme quantidade de RAM que usa em cada processo. A melhor config que consegui até agora foi usando o apache em mpm_worker e o PHP em mod_fcgid. Funciona lindamente e aguenta 500 users simultâneos sem grandes atrasos numa máquina com 4Gb Burstable. Ainda assim, nas alturas de picos torna-se complicado para um VPS, já que este não costuma estar optimizado para a nossa conta específica e por vezes o CPU ou o acesso ao disco tornam-se problemas maiores que a RAM.
3. Se possível, tentar uma configuração sem Apache (e sim com nginx por exemplo)... não sendo isso uma hipótese, instalar o nginx como reverse proxy para o conteúdo estático. Se possível desinstalar o cpanel, não sendo isso uma hipótese contar com mais 250Mb RAM só para isso. Se possível fazer o upgrade para a v2 do SMF, já que as querys deste estão optimizadas em relação à v1.
4. Por fim, efectuar optimizações ao nível da base de dados como mudar as tables de MyISAM para InnoDB entre outras optimizações (que podem ser encontradas no fórum de suporte do SMF).