I just moved to an ISP who doesn't offer static IP's so I've written a little Windows app to act as a dynamic DNS client for a domain hosted with Linode's DNS service.
It's pretty simple - Enter your API key, the domain/zone and the A record (subdomain) you want to use. These must all already exist (and you should set a low ttl)! It'll grab your IP every 15 minutes and if it has changed since the last time it'll use the Linode API to update the record. It doesn't support AAAA records and is untested on IPv6 connections however if anyone wants this I'm happy to give it a shot.
You can have it start with windows and start minimised so it should be a set and forget solution

You can grab it here:
http://www.saltbyte.com/dump/LinodeDDNS.rarThis requires .NET 4.5 but that could be lowered if it's a big deal.
If anyone wants the source for peace of mind I am happy to give it out.

Edit: 2015/Feb/03 - Big fixes and updates to work with API changes.