Shell ->
Doesn't the SME solution mentioned above your post allow exactly what you are talking about - ability to block all ports outgoing (except mail).
The thing is that when it comes to Linux firewalling "outgoing" can meen to completely different kind of "outgoing traffic", it can be "outgoing" from the internal server processes and it can be "outgoing" from the LAN network segment.
When I read from the guide:
"I want to block outgoing traffic from my server. " I read that as: "I want to block the outgoing traffic from the internal processes on my server." (A litle bit above in the same guide they talk about opening ports and then it is reasonable clear that is a question of opening ports into the internal processes running on the server.)
When on the other hand I look into the text of the modification I find the following:
$OUT .= " /sbin/iptables --table nat --append $pf_chain \\\n";
It's still a bit unclear, but it might be you are right. Table Output is basically doing the outgoing filtering from the server while table Forward is basically doing the firewalling out from LAN. Table nat in this case should indicate something that has to do with the nat mechanism wich eventually should mean the trafic out from LAN.
I will try to look into it and also test it out.