No, you don't need a server for any of those things.
You can indeed have one player act as host, and other players join them.
Basically, it goes something like this:
* Player1 enters the lobby and hosts a new game. They are then taken to a waiting area until another player joins them.
* Player2 enters the lobby, and this is immediately detected by Player1, who automatically sends a message to say that they are waiting for someone to join them. Player2 receives this message, and adds it to a list of pending games, from which Player2 can choose one to join.
Plus you have the tedious jobs of removing games that are in progress, or when the host leaves before anyone joins, etc...
To test your game, you can just build it as a .exe, and then open it several times on the same computer.
I have an example you can download from:
www.sketchy.co.nf (the one called "iSOL8 Game").