VASSAL is free. The base engine is free. the Modules are free... unless some company is selling them... but for the most part free and created by anyone who wants to volunteer their time to make the modules.
VASSAL does not, generally, enforce the rules of a game. You need to do that. There are a few modules out there with advanced scripting to do some rules enforcement but they are few.
VASSAL works well for solo playing especially if the game is large and/or you can't leave a game setup for long periods of time.
VASSAL works well for PBEM. Depending on how meshed the player turns are with each other you might need to set some standing orders to make the file exchange not be extremely huge. YOu exchange log files that will show you everything the other player did in their turn.
Some companies do not allow their games to be re-created in VASSAL... and they are routinely lambasted for this.
You can go here and see the vast array of modules currently available:
http://www.vassalengine.org/wiki/Category:Modules