This is a very broad and deep topic. The specifics also depend on how the distro in particular is put together. I can tell you all about how Slackware works internally, and it won't tell you how to add a new package to Fedora or Ubuntu. Basically, you have to start with a knowledge of how the distro works, holistically.
The original skill set that allowed people to create Linux distros is Unix system administration. Back in the day before Linux distros, you'd get a fairly bare-bones Unix system from some vendor, then have to install a bunch of software on it, because the core OS wasn't terribly useful by itself, unless your goal was to write other software. Those who mastered the skills involved in bringing such systems into a useful state were the systems administrators and software developers.
These days, with kitchen sink package repositories and large "default" installs, it's tough to pick a starting point. It's really more of a team effort, simply due to the size of the thing. Simply rebuilding all of the packages can take weeks on a fast machine.
I suggest you start learning how to create packages for your particular distro. For example, read the Debian Package HOWTO, or the RPM 5 site. Then build a package or two for some software you have built from source before. (And if you haven't done that yet, you need to start there!)
Having built a few packages, you will know how to break apart, modify, and rebuild existing packages. Then you can start learning how the OS's installation system works, so you can add new packages to it.
Expect this learning process to take weeks, perhaps months.