Lots of registrar's allow you to change the DNS records.
So, regardless of who you register with, log on to their site (the registrar's site) and you should get to their control panel, where you can edit the DNS settings.
Within the DNS settings, there are many options, such as A records, MX records etc.
You need to edit the A record and simply enter the IP address you want it to get to.
You also mention what happens if you host the DNS yourself. Well I've done this (due to the registrar having certain faults). I logged onto to the registrar website and simply changed the NS records (which they also referred to as Glue records). Pointing them to my own server (in the same way as pointing the A record) was all that was needed. Since I had already set up the DNS records on my own server, it just worked!