Young kids, I'd try to hold at 20 pounds regardless of body weight; it's an issue of still-developing bone and muscle structure. Teenagers, I'd say 20 - 25% of their weight; maybe 25 - 30% for adults. However, there's a caveat.
Those percentages assume that you're in average condition and at or under your ideal body weight. If you're overweight, then take 30% of your IDEAL body weight, subtract your excess weight, and that's the most your pack should weigh. I've found this isn't exact, particularly with young, strong running-back types, but for most average folks, it's about right.
For example, my ideal weight is about 180; 30% is 55 pounds. When I weighed 210, and carried a 25 pound pack, at the end of the day, I felt about as tired as when (years ago) I weighed 190 and carried a 45 pound pack. At 220, even with a 20-pound pack, I was beat at the end of the day (and considering giving up the sport.) I've since lost some weight, and now weigh 190 again and carry a 20 pound pack - and feel great at the end of the day.
I've got no science to back this up; I've just noticed over the years that this seems to be a good rough formula in a lot of situations.