How can I manually assemble my own package using the source of a program?

view full story

http://askubuntu.com – I would like to know how to create my own .deb packages from the source of a program without the aid of a package manager or any other tool (in other words, doing it manually). How difficult is this? Do I need to create my own repository for this to work? Do I need to sign it with my public key or something? Will one deb package work for all Debian-based distributions, or do I need to build a separate version for each flavor? (HowTos)