You have to distinguish between gemination in spelling and pronunciation.
French has a lot of geminated consonants in spelling, but none in pronunciation (except maybe at word boundaries, when a word ends with the same consonant the next word begins with).
The French word suppression comes directly from Latin subpressio/suppressio, where the second spelling was more common, due to the assimilation of the two consonants into the unvoiced one.
French spelling largely keeps etymological spelling, although there is no difference in pronunciation with, say, après; the ending is pronounced the same as the ending of nation.
Spanish spelling got rid of the unpronounced geminated long ago. Basically, the only geminated consonant that remains is rr, but this is rather more a digraph than a true geminated. Indeed, French would hyphenate the word as sup-pres-sion if needed at the end of a line, keeping the lost syllabification, whereas rr in Spanish is indivisible because it denotes a different quality of the r, rather than a “reinforced pronunciation”.
Consonant gemination is a peculiar phenomenon in Italian and other Romance languages spoken in Italy (Neapolitan, Sicilian, Sardinian and dialects thereof).
To roughly mark a boundary between Italian languages that have gemination or not, go from the eastern end of Liguria to the top of Marche.
Standard Italian has gemination in pronunciation. Where does it come from? From Latin, of course, in several words, but also from assimilations such as -dv- > -vv-, -pt- > -tt. The origin of gemination can be different, though: the Latin academia becomes accademia, for a totally different phenomenon and indeed you can see it written academia in old books.
Other common cases are femina (Latin) > femmina (Italian) or cathedra (Latin) > cattedra (Italian), which are due to the proparoxytone word attracting gemination of the consonant following the tonic vowel. See the article on Enciclopedia dell'italiano Treccani for more information.
As to the question of why Italian kept gemination from Latin and other Romance languages lost it, it's not easy to answer. Likely, the reason is the linguistic substrate of the peoples that started to speak Latin during Roman domination.
Just to make an unrelated example: ask a Tuscan to pronounce the consonants /s/ and /ʧ/ one after the other and you'll get funny results; people in my region would have no difficulty: the local word for rifle is /'sʧopo/ (the root is the same as for Italian scoppio, explosion). To the contrary, my regional (northern Italian) language has no consonant gemination at all and it's not uncommon to hear “wrong” pronunciation of Italian words that have geminated consonants.