On one hand, you have balance. You will want the game to be somewhat even so one faction doesn't dominate the game with ease. And on the other hand, you want to reward people for getting ahead. Viva la Mafia, for example, almost punished factions who got ahead of others by simply cutting their numbers even with lynches and all. Generally this isn't as much of a problem for forum mafia, especially not small ones, because there aren't as many kills, and it is usually hard enough to get a lynch in on an evil guy without even worrying which of the two evil factions he's of.
For main factions, usually something between 1:4 and 1:3 is what I do of a single village vs a single mafia. Like a standard RTM has 16-18 players with 11-12 villagers, 4 mafia and maybe a wolf. The wolf's kills are usually aimed at the village, but he can also hit mafia, and will want to when the game draws towards a mafia win. Many small games have two mafia factions for some reason, which is weird since it makes it harder to balance things...though usually both mafioso end up hitting villagers. But overall I don't get the obsession.
For the wolf...there are no set laws, but generally the wolf cannot win unless he has some way to falsify inspection, which is usually broken, so it has to be limited in some way. He should be able to kill more often and/or more effectively than any faction, and he's the #1 spot to rig players for since you don't want an incompetent player to use your surprise wolf role. He should also have ways of false claiming, both role and role name-wise...and it really isn't too much for a wolf to ask for a generic inspection, hooker, etc role.
The mafia(s) usually, by extension, ends up as a multi-man wolf in a way, though they don't have to be all great players, they don't need a mole role per sé, and they don't need to kill as often.
The village needs some roles that need to work together to be effective. Bodyguard, inspector, hooker etc are almost obligatory as otherwise it's extremely hard to build a trust base...I don't believe it can work out otherwise. You can balance how easy it is to "gather the village" through knowledge roles ("you know your lover is in this game", "you know there's 20 villagers, 5 mafia and 2 neutrals", etc) , announcers, etc...you can also make it harder for them with obvious ways. Sometimes in RTM I allow the mafia a one time BG Pierce so they can kill the "village leader".
Despite the fact that it's undesirable for overall game play, most village wins are based of a very small amount of people knowing what the deal is.
And neutrals...I don't like most neutrals because what they do and who they side with is very hard to take into account, even if you know someone's playstyle. This can be remedied by giving them a partial alliance (for example, they can win with 2/3 of the factions), or giving one of the alliances a connection with him (Bastian/Volke in FE Mafia). Generally I would recommend not having more than 1-2 non-wolf neutrals at most. In FE Mafia, I also made their votes not count.