If you have a PC with windows XP professional and a router supporting port-forward, then you can setup a VPN server at home without cost a penny.
Even PPTP based VPN is criticized for low security compared with L2TP/IPSec based VPN, Microsoft Inc. is constantly promoting it. The PPTP VPN client is included by default in all versions of windows XP, windows vista. If you have windows XP Professional, you can even set up a PPTP based VPN server at home. The good side is PPTP based VPN setup don't cost you a penny, and functioned the same as those expensive cisco gateway backed VPN setup; the bad side is, you should be aware of the security issue facing the PPTP VPN -- for PPTP the authentication process is not done over secured connections hence credentials can be lost to hackers and thus they can have access to the VPN server. The secure connection is setup only after the authentication is done.
To set up VPN, you should do three things.
Task #1: Having a router supporting port-forward. (Here is a farely completed list for routers supporting port-forward. My recommandation is LINKSYS WRT54GL. It is a perfect router for someone with networking experience who wants an inexpensive router to do expensive networking tasks.)
Task #2: Configure your router so that the traffic at your router's port TCP-1723 will be forwarded to the local IP address of the PC running your VPN server software.
Port Forwarding How to
Task #3: Enable and configure the VPN server software at that home PC.
Simple PPTP VPN Server Setup in Windows XP
Now, the VPN client on the internet can access your VPN network anywhere, the only thing the client need to know is your router's external IP address (which is dynamically assigned by your ISP) and the password of your VPN (of course). The IP address may change now and then, so your VPN client need to adjust the IP address accordingly.
If updating the dynamic IP address annoys you, you can ask a software to do this for you.
This is how to: firstly bind the dynamic IP address to a domain name, then point your VPN client to the domain name, so that no update is needed at the client side. At the server side, a software periodically tests your external IP address, then binds the new IP address to the domain name. no-ip.com have already wrote such a software for you, they even provide free domain name! If you are a hard-core programmer and dare not trust the softwares downloaded from the web, writing a software in Java or C++ is not that hard.