you'll want to find some dynamic dns solution that allows you to assign a hostname to your router's DHCP address - dyndns was a way to do this, but think they've since stopped taking new members. depending on your router software, there's client software that is used to automatically periodically check the IP and update the record. you really need this because your router/modem IP is not guaranteed unless you've paid for a static IP.
you're not going to want to use dynamic port forwarding because you need to setup your router so it can forward inbound traffic on a particular port, to a particular host. so, SSH is typically port 22 and would be forwarded to port 22 on your home machine - it's strongly suggested to use an alternative port, one that is outside of the assigned IANA ports. so, for instance traffic to port 22222 would forward to port 22. it's a security measure aimed at reducing brute force attacks.
btw, if you are going to do this make sure you INSTALL fail2ban. not only does it automatically bans (either permanently, or temporarily depending on how you config it) IPs that it deems to be attacking your system.
there are a couple of good set of instructions on how to use SSH for port forwarding:
for linux, http://www.debianadmin.com/howto-use-ss ... rding.html
for windows, http://www.dotcomunderground.com/blogs/ ... o-hide-ip/
do you use dd-wrt or some other open source router firmware? there are plenty of howtos on setting up your router for port forwarding, and also on how to properly secure your SSH server setup