The need to secure advance reservations depends on the time of year, the exact date of travel, and the actual train. As a rule, winter (early September through late May) features trains which are much less filled than in the summer, but all the trains fill up during certain American holidays, which would be the case at Christmas time. The trains are less crowded on Christmas day than on the days surrounding the actual holiday. I regularly make same-day reservations on most trains during the winter, but prefer at least 3 days advance notice during the summer. Some trains seem to be full all the time; the Coast Starlight comes to mind.
It is hard to assign hard and fast rules. As someone who rides around on Amtrak frequently and regularly, I am constantly surprised. I have, however, always been able to get what I want simply by being flexible. If I can’t find a seat on a certain train on a certain day, I seem to be able to get what I want a day earlier, a day later, or (in the eastern part of the U.S.) on an alternative train going to my destination.
Though I use VIA in Canada often, my experience with VIA is not sufficient to offer advice. My sense of the situation is that things are generally more consistent with VIA then with Amtrak, and I presume some kind of reliable advice would be easier to construct for the VIA traveler. Keep visiting this forum for more useful advice.