Put all ingredients into a large soup kettle. There is no need to peel or slice or chop any of the veggies. Just add them whole and unpeeled. Place over medium high heat and bring to a boil. Turn the temperature down and allow to simmer. This is the part that requires patience. Most people don't cook their soup long enough. I simmer the soup gently for almost 24 hours.
Add additional water if the level gets too low. By cooking very slowly for a long time, you'll get all of the wonderful flavor out of the bones, skin, and meat. When the soup has cooked/simmered overnight, turn the heat off, cover it, and allow it to return to room temperature. When the soup is sufficiently cooled, strain it through a colander into a large container.
Cover the container and place it somewhere cool, such as your refrigerator. In the wintertime, I place it on a shelf in my garage. Let it sit overnight. The fat will all rise to the surface and congeal. The next morning, scrape the fat off of the top of the broth. The broth, because it has been cooked with bones, should be gelatinous, like Jell-O.
Once you have scraped the fat off, you can bring your broth back to room temperature, or warm it, and it will become liquid again. Now you can use it in recipes. It freezes very well.