LifeHacker has got a few articles related to this.
See this : http://lifehacker.com/124804/geek-to-live--how-to-assign-a-domain-name-to-your-home-web-server
Step 1. Set up your DynDNS.com account.
Register for a free account at DynDNS. Agree to the site's terms, and
use a legitimate email address to complete registration. Once in
awhile, DynDNS will email you at that address asking you to confirm
that it continue your service.
Log into your new account. Go to the "My Services" area on the left
side. Under "Host Level Services" click "Add Host Services." There,
click "Add Dynamic DNS Host." DynDNS will autofill your IP address (if
you're doing this from your home computer). Choose a domain and type
in a custom subdomain, which can be anything from
lifehacker.kicks-ass.org or john.is-a-geek.com or gtrapani.dyndns.org,
Step 2. Set up your computer to update DynDNS.
Now that your computer is registered with DynDNS, each time your
computer's IP address changes, it has to let DynDNS know. This can be
done either with free updater client software or through your router.
If your computer is connected directly to the Internet, download the
DynDNS updater client for Mac or Windows here. Install and enter your
DynDNS information so that your computer can update DynDNS's database
If you are behind a router, you're in luck. Most modern routers
support dynamic DNS services. Here's a screenshot from my router's
interface (yours will look different) for with DynDNS settings:
Step 3. You're done. Give your new domain a spin!
Type your new domain name by entering it in your web browser's address
bar. It should resolve to your home server. From here you can
publicize or bookmark your server's new domain name no matter how
often your IP address changes.
Notes: DynDNS has a few advanced options to consider.
"Enable wildcard" lets you set up sub-subdomains. For example,
blog.johnsmith.mine.nu can resolve to a weblog, where
jukebox.johnsmith.mine.nu can resolve to a music directory. Virtual
hosts must be configured for your Apache web server to display the
right site when addressed by different subdomains. Set up an MX record
to handle email handling to your home server. Upgrade your account
assign a custom domain name or your choosing to your home server as
well, for about 25 bucks a year. See more info on Custom DNS.