I used
http://freedns.afraid.org/ FRom what i have found it has been prety reliable and have rarely had a probem with not being able to update.
I have a linux firewall behind an ADSL router but because i run a mail server. The simple fix was to write a little peice of code that checks the ADSL router (local traffic) every minute or so and compare the IP address with the one in its last lookup table. If they are the same then nothing happens. If it has changed then it polls
http://freedns.afraid.org/ and updates the domain name (or multiple domain names) with the new IP address.
If you want the script drop me a line and i will email it to you. its prety simple and onlyh required PHP and CROND.