IP addresses come from your ISP unless you are *huge*. Whoever owns the block of IPs is in charge of reverse lookups, so you need at least some cooperation from your ISP. Assuming your ISP cooperates, there are two options:
1) you tell them what names you want, they put those names in their reverse lookup zone.
2) they delegate a reverse-lookup zone to your name server, and you provide the zone file.
I use #2, because it gives me more control (I can reassign things more easily) and I was running a name server anyway. Your choice may well be dictated by your ISP's policies.