Preheat oven to 450 degrees F. Place soup bones or meat pieces, carrots, and onion in a large shallow roasting pan. Bake, uncovered, about 30 minutes or until well browned, turning occasionally. Drain off fat. Transfer browned bones, carrots, and onion to a 10-quart Dutch oven. Pour 1/2 cup of the water into roasting pan and rinse; pour this liquid into Dutch oven.
Add remaining water, cabbage, celery, tomato, peppercorns, parsley, bay leaf, thyme, salt (omit if using ham hocks), and garlic to Dutch oven. Bring to boiling; reduce heat. Simmer, covered, for 5 hours.
If desired, clarify stock by separating the egg (discard the yolk or save for another use). In a small bowl combine the egg white and 1/4 cup cold water. Stir the mixture into the hot strained stock. Bring to boiling. Remove from heat and let stand for 5 minutes. (As the egg white cooks, it will coagulate and trap fine particles from the stock.) Place a large sieve or colander line with several layers of damp 100-percent cotton cheesecloth over a large bowl. Pour the stock through the cloth to strain out the particles and egg white.
If using stock while hot, skim fat using a metal spoon. Or, ladle stock into one quart jars; cover and chill immediately. When thoroughly chilled, lift off hardened fat with a fork. Stock may be stored in the refrigerator for up to 3 days or in the freezer for up to 6 months.