Most often it is the webhost, (though some registrars provide DNS, and some sites provide free DNS, so you really can't say for sure one or the other).
Books have been recommended before on the subject, and although I don't think anyone would say it is difficult, you have to know what you are doing.
If you've never run DNS before, then it might not be a bad idea to check out a site like zonedit.com and just get a basic understanding of it (though this won't help you in terms of running it yourself or setting it up).