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 similar 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?
Edit: I would like to point out the main difference between my question and "Simplest Debian Packaging Guide?", which is that, while the asker of that question wishes to create a package with minimal time and effort, I want to go the long way around, not for the sake of making it harder, but because I want to understand how the packaging system works. In short, I want to learn.