I've tried wherever possible to make this information applicable to a wide range of home network routers, using specific examples from the LinkSys router and Apple Airport Base Station that I use myself. You can also find lots of other useful information on the subject at this site.
The basic procedure, covered in detail with screenshots on the pages that follow, is to start the server on a Mac, set the Mac to a fixed IP address, configure the Router to forward the correct service port(s) to that IP address, determine the public IP Address of your network, and then connect to it.
The basic problem is that your Router is controlling all your external internet connections. It will need some geeky instructions about what to do when it gets a request from the internet so it will pass it on to the Mac.
Consider the 4-computer home LAN illustrated on the right-hand side of this picture:

There are four computers on this LAN. Each computer is uniquely identified by an IP Address, which is the four-part number used by the internet to uniquely identity every computer. (In this example, these are 192.168.1.101, 192.168.1.102, etc.) But these IP Addresses are only Private (or "local"); They are only valid on your local LAN (also called your sub-network). They identity your computers to each other and to the Router, but not to the internet. Furthermore, if you used the simplest way to connect your computers and used DHCP (the Dynamic Host Configuration Protocol, which automatically assigned computers on the network an IP address as they join), these IP addresses were assigned dynamically by the router and can change with time.
Your ISP has assigned your network a unique Public IP Address (or external IP address), which is how other systems on the internet identity the (In this example, this is 66.167.43.161.) Also, if your ISP uses PPPoE (common for DSL providers) or DHCP (common for Cable providers) for your internet service, that IP Address can change over time, too.
(Your Router actually has two IP Addresses, one that it's been assigned on the WAN port and uses with the internet, which is how the internet sees your home; and, one IP Address that it uses locally on your LAN and WiFi ports, which is how your home computers know it. On this LinkSys-based network, the LAN side knows the Router as 192.168.1.1.)
I'm hoping these pages will help you though these steps:
All screenshots were taken for Mac OS X 10.2.8, a Dual-Ethernet Airport Base Station ("Snow"), or a LinkSys BEFW11S4 v1. With minor adjustments they should be applicable to whatever OS X, Airport or 3rd-party router you are using. The IP Addresses used were actual values; but since I get a dynamic IP Address from my DSL provider (Earthlink), these aren't mine anymore; so don't try to connect to it, you'll only annoy some other poor Earthlink customer!
Running a server means allowing people in. That's what it's for. Controlling who gets in is your job. Use good, robust passwords on all your accounts, so only you can get into the file servers (just setting your account's password isn't enough if you share your Mac with anther user who hasn't used one.)
Turn on the OS X firewall, and only open the ports you absolutely need for your server.
START (Introduction)
Top
NEXT (Start the Server)
You can check the rest of my home network config info here.
If something above seems missing, confusing or down-right wrong, you can eMail me as car1son at my .Mac account. (Please be specific at what point things went wrong and how they went wrong.)
Good luck!