"Lunch" vs. "dinner" vs. "supper" — times and meanings?
Dinner is considered to be the "main" or largest meal of the day. Whether it takes place at noon or in the evening is mostly a cultural thing. For instance, many people who grew up in the American South and/or on farms traditionally ate larger meals at noontime to give them the strength to keep working through the afternoon.
Supper is more specifically a lighter evening meal. Rooted in the word "to sup", it comes, again, from farming traditions — many farming families would have a pot of soup cooking throughout the day, and would eat it in the evening — specifically, they would "sup" the soup.
Lunch is almost the midday equivalent of supper — it's also a lighter and less formal meal than Dinner, but is used specifically when referring to a midday meal. So whether you use lunch/dinner or dinner/supper is heavily determined by when your culture traditionally has its largest meal.
Much Later Edit: I happened across this article discussing the agricultural roots of midday dinner and evening supper, just to add a bit more to the conversation.
Harvard's Dialect Survey had the question, "What is the distinction between dinner and supper?" Here's the geographic distribution of their results from 10,661 American respondents:
In working-class families in the North of England, dinner was traditionally the noon-time meal, and there is an afternoon or evening meal called tea. However, this is changing to some extent as people move about and some try to sound more "Southern". (English usage in the South of England, or sometimes, more particularly the South-East, is generally taken to be "correct" English, as in this case.)
In AmE/culture:
'lunch' is the midday meal (11:30am-1:30pm), however large it is (if you're eating something around that time, and you don't eat something bigger around that time, that was your lunch). If you eat your midday meal at 3pm, that's kind of a late lunch, but it wouldn't be called anything else. That is, in AmE, 'lunch' = midday meal; a midday meal is never called dinner or supper (but see the exception below).
'dinner' or 'supper' is the evening meal 5-7pm, or if later than that, more likely to be called a 'late dinner' or 'late supper'. 'supper' is not as common a term for the evening meal in AmE (my family used to call it that when I was a kid but I have rarely heard anybody else use it). So there is not much difference between dinner and supper (in AmE), except...
A midday or rather main meal on a Sunday, is sometimes called 'Sunday dinner' (never 'Sunday lunch') and is more likely to occur later in the afternoon, anywhere from noon to 4pm (well, OK, any time from noon to 8pm). There is nothing called 'Sunday supper', (dinner has a higher register feel to it than supper).
Just to note, in AmE/culture: there is no such thing as 'tea' as a meal (it just refers to the drink, not to any kind of cultural event as in BrE/culture). The evening meal, whether dinner or supper, is usually the biggest, most special meal of the day. 'Brunch' (usually Sunday brunch) is a big late morning/midday meal (skipping breakfast) that I think culturally came about because of having the first meal on a Sunday after church service; how or if that interferes with Sunday dinner I don't know - having both in one day would be excessive. Maybe Sunday dinner is if you have to spend the time after church preparing the meal, and brunch is if you go out afterwards.
Anyway, that's only mainstream AmE/culture. Off to Easter dinner...hm...that would be a Sunday dinner on Easter I guess.