Domaintools does this but you need a membership to get full results. Are they complete? who knows -- the nature of DNS means there is no reliable mapping to really know ALL the forward entries that point at a given IP, without crawling every public DNS server. There's really not even a reliable way to do that, since the only people that truly know every domain that exists are the root registrars.
I'm assuming what you're asking here is not for "true" reverse DNS (which requires a specific entry created in the DNS server). Reverse DNS (PTR records) are basically voluntary, and also require access to the reverse zone (in the case of shared hosting, etc, people often don't have that). In addition, often there are hundreds of domains hosted on the same IP, but only one reverse entry.