Technically, the word "supper" refers to a light evening meal, and "dinner" is a more formal, hearty meal.
In colonial days, farmers were too busy to eat three meals a day, so they only had breakfast and dinner, and the wealthy had three meals a day: breakfast, dinner, and supper. Back then, dinner was a hearty meal that one ate in the middle of the day, and supper was a lighter meal that one ate before retiring for the evening.
In the 1800's, things shifted a little bit. In households of the upper classes that employed a cook or servant, dinner was served at the end of the day. Supper was eaten in the afternoon and was a lighter meal. Usually the wealthy hosted dinner parties, and were expected to set out lavish meals that lasted for several hours.
In middle class households without servants, dinner was eaten in the middle of the day, and supper was the last meal, for practical reasons: it took a lot of work to get the stove fires going, so after cooking breakfast, the housewife would keep the fires going and cook dinner next. This way she wouldn't have to make two stove fires a day and she could concentrate on her other house chores and the raising of children. This practice worked well with people who traveled or lived in encampments: think pioneer wagon trains and gold rush people.
These days, we think people just say what their parents (or others around them) say. What do you think?
(Image: Painting by Frederick Cotman; available through Easyart for Â£34.95)