Here are the basics:
http://www.minecraftwiki.net/wiki/Tutorials/Setting_up_a_server
As you mentioned, in the LAN they can share maps with each other, but outside you would either need a paid service or host an actual server yourself, which means configuring the server, opening up the required firewall ports and sharing your ISP provided IP with them. You could also register a domain name if you would rather not hand out your IP. There are other was to do it with Hamachi, but I've never gone that route, since I already had a webserver up and running.
I don't know if minecraft "realms" are up and running yet, they might be still in development, but I think those will be paid too. They will be public realms that they can create and join together (hosted private servers created right from in-game).
The server doesn't "have" to be up all of the time, but obviously while anyone wants to play. It doesn't have to be a dedicated machine either.
Remember you need server mods with a password otherwise your server will be published by default. Ppl will join and grief . Ask me how I know.
You had an issue with this? I have 4 servers running, none of them have ever been griefed. I just added names to the whitelist as needed (family and friends that wanted to play).
The only mods I use are remote toolkit (so it restarts itself each night) and essentials.