I think there are lots of reasons. Some people are just disorganized, they think about leaving on time but forget the prep like finding kids' shoes and allowing enough time to dry their hair or iron their outfits beforehand.. Some are overwhelmed and just try to do "one more thing" before they leave, and then that "one thing" takes longer, and the whole thing spirals out of control. Some people just never learned time management skills when they were younger.
I think there are others who really thrive on the attention. They don't feel in control of other parts of their lives, so they try to 'control' events or people by showing up late and making an entrance. I think once is understandable. But if it's habitual, then I think others play into the drama by holding dinner for the late arrivals or, frankly, being way too nice when they finally arrive. I had a house full of people for lunch for my brother who was coming in from out of town - this goes back years before there were cell phones. So we assumed there was traffic or an accident on the interstate, we held lunch for hours (just fed the kids), and lo and behold, he was working out on his Nordic Track because "it's important" and he just didn't give a hoot about everyone else. Even when confronted, he said his workout is more involved that we understood.
I think there are a whole lot of people who don't give a damn who they insult or inconvenience, and they are really trying to show off - how important their lives are, how busy and in-demand they are (vs. the rest of you pathetic people with no lives), how popular they are even if they show up late because everyone wants to be with them no matter what. They think their time is more valuable than mine - but down deep they really feel they have no value and they expect you to fawn over them to reassure them that they aren't as worthless as they fear. So I think it's a big inferiority complex rearing its head as a way of controlling and bossing others around.
I give people a reasonable window, and then I go ahead with lunch or the party or whatever. I leave their place set for them at the end of the table so the rest of us can all sit together. When they arrive, I don't make a big deal of it, either to condemn or to be all that understanding. I tell them the leftovers are in the kitchen and they can help themselves while we eat dessert. If I were hosting a kids' party and paid for a child who just arrived late, I'd be pretty ticked off at my expense for a no-show and my child's disappointment at having a good friend stand him up. I'd be willing to say to my child, "Mary, Johnny didn't mean to treat you badly by not showing up. He can't help it if his ride doesn't come."
If I were invited by the chronically-late for an event they were hosting, and I arrived and they were not there, I'd give it 15 minutes and then tell the restaurant hostess or other employee that I assume there was a change in the date, and I was going home. I'd drop them a note saying I must have had the details confused because I showed up at the House of Pizza at 7 PM and no one was there, so I left at 7:20 after inconveniencing the management long enough, and I hope they are well and have a nice party on whatever night it's really scheduled for. If re-invited, I would not go. I would ONLY invite them to my own house for an open house, or appetizers/drinks, not a sit-down dinner. At the end of the party, I'd be cleaning up and going up to bed, even if they had just arrived. I'd say I'm sorry they couldn't come during the party hours but I'm sure they understand that I've been working for days and am tired after a wonderful evening with those who were interested in sharing my company. I wouldn't listen to any excuses. I don't start a fight, I just don't engage in their excuses - I tell them I understand, and I'm sure they do as well.
I have a work colleague who likes to carpool to training sessions and other special events, and we tell her 10 minutes before the time we really have to leave, and if she's not there and is already 10 minutes late, we just leave. After a while, she figures out she's driving herself to all events. I'm not missing the start of a seminar because she had to do her make-up.
I do think that most people coddle the habitual latecomers and that just fuels them.
The same thing applies to people who don't RSVP - the hostess is always making extra food and buying extra kiddie goody bags in case people show up. I think the thing to do is act so surprised to see them, and then say, well, what the heck, come on in, I'm sure you'll be content with leftovers and that Jimmy will understand we don't have take-home prizes for him. Then I ignore them and go back to the party guests who do have manners.
And now that everyone has cell phones, there's no excuse for not notifying hosts of unavoidable delays, such as a traffic accident or a flat tire or whatever. It's just part of the culture of bad manners - which many of them have had handed down by inconsiderate parents.