First, the title question:
Assuming the debian directory is already there, be in the source directory (the directory containing the debian directory) and invoke dpkg-buildpackage. I like to run it with these options:
dpkg-buildpackage -us -uc -nc
which mean don't sign the result and don't clean.
How can I check if I have listed all the dependencies correctly?
Getting the dependencies is a black art. The "official" way is to check build depends is if the package builds with only the base system, the "build-essential" packages, and the build dependencies you have specified. Don't know a general answer for regular Dependencies, just wade in :)
How I can I prevent the update system installing the older version in the repo on an update?
How I can prevent the system installing a newer version (when its out), overwriting my custom package?
My knowledge might be out of date on this one, but to address both:
Use dpkg --set-selections. Assuming nullidentd was the package you wanted to stay put, run as root
echo 'nullidentd hold' | dpkg --set-selections
Alternately, since you are building from source, you can use an epoch to set the version number artificially high and never be bothered again. To use an epoch, add a new entry to the debian/changelog file, and put a 99: in front of the version number. Given my nullidentd example, the first line of your updated changelog would read:
nullidentd (99:1.0-4) unstable; urgency=low
Bernard's link is good, especially if you have to create the debian directory yourself - also helpful are the developers reference and the general resource page. Adam's link also looks good but I'm not familiar with it.