The disappearing vowel is called a fleeting / mobile vowel. Some words have them, most don't. If a noun has a fleeting vowel, then it will obey these rules:
- A fleeting vowel can only appear between two consonants (й being a consonant). It is always the last vowel in the stem of the word. A stem is the part that is left when throwing away any endings: ветер has the stem ветер, кошка has the stem кошек (with a fleeting -е-).
- A word form has a fleeting vowel only if the ending is null or begins with a consonant: любовь (null) - любви́ (vowel) - любовью (consonant - phonetically йу).
- If there is a consonant cluster to the left of a vowel, the vowel is kept in all cases: бегле́ц - беглеца́ (compare to гонец - гонца́), лжец - лжеца́.
Fleeting vowels historically formed after the Fall or the Jers (падение редуцированных) in 11-13 centuries AD.
Now the big question is, how does one tell if a word has a fleeting vowel? There is no definitive answer but a few patterns do stand out:
Masculine nouns:
- ending in -ец: коне́ц - конца́, па́лец - па́льца, бое́ц - бойца́;
- ending in -ень: па́рень - па́рня, ко́рень - ко́рня, ка́мень - ка́мня, пень - пня;
- ending in -ок/-ек/-ёк: замок - замка, замочек - замочка, зверёк - зверька́, чаёк - чайка́;
- ending in -ей: мураве́й - муравья́, воробе́й - воробья́, у́лей - у́лья;
- ending in -ёл: орёл - орла́, осёл - осла́, козёл - козла́, котёл - котла́;
- Quite a few odd ones: сон - сна, рот - рта, лев - льва, мох - мха, у́гол - угла́, у́голь - угля́, etc.
Feminine and neuter nouns may get a fleeting vowel in genitive plural:
- consonant + ка: ко́шка - кошек, ба́нка - ба́нок, селёдка - селёдок, ко́йка - ко́ек;
- consonant + ня: ви́шня - вишен, ба́шня - ба́шен, дере́вня - дереве́нь;
- consonant + ья: семья́ - семе́й, статья́ - стате́й, судья́ - су́дей;
- consonant + ьё: ружьё - ру́жей, копьё - ко́пий;
- са́бля - са́бель, ка́пля - ка́пель, сопло́ - со́пел, дупло́ - ду́пел;
- -сло: ма́сло - масел, ремесло́ - ремёсел;
- -дро: ведро́ - вёдер, бедро́ - бёдер;
- Odd ones: яйцо́ - яиц, ку́кла - ку́кол, серьга́ - серёг, кочерга́ - кочерёг, вошь - вши.
Notice how й is lost in writing but is still pronounced: га́йка - га́ек (га[jе]к), ле́йка - ле́ек (ле[jе]к).
Fleeting vowels also exist in verbs (брать - беру́, звать - зову́), adjectives (кра́ткий - кра́ток, ну́жный - ну́жен), pronouns (весь - всего́), prefixes (взобраться - взберусь) and prepositions (к нему - ко мне).
Outside of these patterns telling if a word has a fleeting vowel is difficult:
- ве́тер - ве́тра
- ка́тер - ка́тера
When in doubt, use a dictionary or this tool.