Hmm... lots of confusing replies here.
Let's be very clear what can and cannot be done.
The only way to determine the location of an IP address is to do
a whois lookup. This whois lookup will tell you who the IP address
range is registered to.
Let's take an IP address as an example. Let's say you are on
IRC. You are chatting with a guy who is using IP address
203.117.154.215. You do a whois lookup.
This is all the information you can get. So you know that he is
in Singapore, the ISP he is using is Starhub and the IP block is
registered to Hotel Marina City Pte Ltd. So there's a high chance
he's staying at one of the hotels in Marina. As it so happens, the
IP is used by Pan Pacific Singapore but you need to dig a bit
deeper to get that information.
Let's say you are working for Tan Ah Kow Pte Ltd and you are
connected to IRC from work. TAK Pte Ltd has registered it's IP
range as well so if someone does a whois lookup on your IP, he will
see the registration information. Let's say Tan Ah Kow Pte Ltd is
not very big and has only one office. So now, the person pretty
much knows where you are.
However, let's say TAK Pte Ltd has no requirement to register
it's own IP range - they are just given an IP block by Starhub. If
someone looks up your IP address, they will only see that you are
using Starhub.
So now let's get back to your question - the only party who can
trace your IP address to your home address is your ISP. Everyone
else can only trace your IP address to your ISP.
Some people try to hide their IP addresses by connecting to
proxy servers of one kind or another (BNC, Socks proxy, VPN, etc.).
In those cases, if you lookup the IP address, you will find the
location of the proxy server. You would then have to contact the
owner of the proxy server to find out the IP address you were
connecting from, and then continue to trace.
So I would say unless you are the ISP, it's quite hard to find
out your home address.