A static IP is not necessary. You can use a Dynamic DNS service like NO-IP or DynDNS (my favorite). It's easier to remember than an IP Address.
Of course, a direct connection (by IP/DNS) is always preferable. However, given that broadband is everywhere nowadays the difference between a direct and indirect connection is barely noticeable.
By indirect connection I mean using an intermediary (mediation) server to hook/connect two PCs located behind firewalls/routers (see my link in the previous comment).