so I am a little rough on my sql and am trying to figure out how to get only the entries of the table that are same both on source and destination.
I created a small db here: http://sqlfiddle.com/#!9/05afc7/10
INNER JOIN Cities src
ON (src.ID = Routes.Start)
INNER JOIN Cities dest
ON (dest.ID = Routes.Destination)
[Not sure what to put here]
You were on the right track with doing a self-join, but your join condition had a problem. You want to retain routes whose end is also the start of another route.
In the query below, I select only the starts of each matching route, since the ends will be duplicates of some other start.
SELECT r1.Start, c.Name FROM ROUTES r1 INNER JOIN ROUTES r2 ON r1.Destination = r2.Start INNER JOIN Cities c ON r1.Start = c.ID WHERE r1.Start = r2.Destination