1. It's possible you actually are in worse aerobic shape than they are and they just arrive at the last lap with more in the tank than you have.
2. You might be mentally weak. You need to figure out what motivates you and keep that in your mind. It can be that the other guy is a jerk, that there's a cute girl watching, or anything else. I stopped getting passed by people at the end of races when I started running races with prize money and my girlfriend started coming to races.
3. You might lack the top-end speed you need to accelerate into the finish. You have 2 ways to solve that problem.
A. You make a move earlier. Force people to run fast for the last 600-1000 meters instead of just the last 200-400. The downside is that they might just come along and blow by you.
B. Work on your top end speed. The best way to get started, in my opinion, is to do 6-8 x 200 meters @ 800-1600m race pace. Don't go faster than 800 meter pace. Take full recovery (400 meter jog) between. This isn't a hard workout. You should finish feeling springy and invigorated, not tired. Later, you can work on short sprints faster than 800m pace and possibly some plyometrics to continue building power.