I've done it both ways, and there are pros and cons to each. On the one hand, it's nice presenting a simplified usage to the user. They load the game, select Host Multiplayer, and off they go. On the other hand, having the server be separate means cleaner code (no mixing of client and server in the same game loop), and things like a separate server console to enter commands on (if relevant).
What I'm curious of, is how many games out there do both. Player can host a game directly from the client, but it's …