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:

 1. 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 **-е-**).
 2. A word form has a fleeting vowel only if the ending is null or begins with a consonant: люб**о**вь (null) - любви́ (vowel) - люб**о**вью (consonant - phonetically **й**у).
 3. If there is a consonant cluster to the left of a vowel, the vowel is kept in all cases: бе<u>гл</u><b>е́</b>ц - бе<u>гл</u>**е**ца́ (compare to гон**е**ц - гонца́), <u>лж</u>**е**ц - <u>лж</u>**е**ца́.

Fleeting vowels historically formed after the [Fall or the Jers][1] ([падение редуцированных][2]) 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 **-ец**: кон<b>е́</b>ц - конца́, па́л**е**ц - па́льца, бо**е́**ц - бойца́;
* ending in **-ень**: па́р**е**нь - па́рня, ко́р**е**нь - ко́рня, ка́м**е**нь - ка́мня, п**е**нь - пня;
* ending in **-ок/-ек/-ёк**: зам**о**к - замка, замоч**е**к - замочка, звер**ё**к - зверька́, ча**ё**к - чайка́;
* ending in **-ей**: мурав<b>е́</b>й - муравья́, вороб<b>е́</b>й - воробья́, у́л**е**й - у́лья;
* ending in **-ёл**: ор**ё**л - орла́, ос**ё**л - осла́, коз**ё**л - козла́, кот**ё**л - котла́;
* Quite a few odd ones: с**о**н - сна, р**о**т - рта, л**е**в - льва, м**о**х - мха, у́г**о**л - угла́, у́г**о**ль - угля́, etc.

Feminine and neuter nouns may get a fleeting vowel in **genitive plural**:

* consonant + **ка**: ко́шка - кош**е**к, ба́нка - ба́н**о**к, селёдка - селёд**о**к, ко́йка - ко́**е**к;
* consonant + **ня**: ви́шня - виш**е**н, ба́шня - ба́ш**е**н, дере́вня - дерев<b>е́</b>нь; 
* consonant + **ья**: семья́ - сем<b>е́</b>й, статья́ - стат<b>е́</b>й, судья́ - су́д**е**й;
* 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][3].


  [1]: http://russianmentor.net/gram/mailbag/topics/phon2.htm
  [2]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B4%D1%83%D1%86%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5
  [3]: http://morpher.ru?s=%D0%B2%D0%B5%D1%82%D0%B5%D1%80