Летающий and летящий are formed from two different verbs: летать and лететь (the former being an iterative for the latter).
It's similar to English "sniffle / sniff, shuffle / shove" etc.
However, this particular iterative participle also acquired an idiomatic meaning: it means not only "flying repeatedly" but also "able to fly".
Adjectives meaning "able to" or "inherently doing smth." are in number of cases formed by using suffix -уч/-юч: горючий / горящий, кипучий / кипящий, гремучий / гремящий etc., летучий / летящий being no exception.
So летающий has two meanings:
Adjective "able to fly", synonymous to летучий: летающая тарелка "flying saucer", летающая крепость "flying fortress".
Participle "flying repeatedly or continuously": Летающий в ночи "The Night Flier", часто летающий пассажир "frequent flier" etc.
Летящий is a participle meaning "flying at the moment": астероид, летящий по направлению к Земле "an asteroid flying towards Earth".