This is called a fleeting/mobile vowel which historically formed during the [Fall or the Jers][1].

There are no strict rules but some patterns stand out:

Masculine nouns:

* ending in **-ец**: кон<b>е́</b>ц - конца́, па́л**е**ц - па́льца, бо**е́**ц - бойца́;
* ending in **-ень**: па́р**е**нь - па́рня, ко́р**е**нь - ко́рня, п**е**нь - пня;
* ending in **-ок/-ек/-ёк**: зам**о**к - замка, замоч**е**к - замочка, звер**ё**к - зверька́, ча**ё**к - чайка́;
* ending in **-ей**: мурав<b>е́</b>й - муравья́, вороб<b>е́</b>й - воробья́, у́л**е**й - у́лья;
* A few odd ones: л**е**в - льва, ор**ё**л - орла́, м**о**х - мха, в**о**шь - вши, в**е**сь - всего́, у́г**о**л - угла́.

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е]к).

These phonetic rules regarding fleeting vowels are quite strict:

 1. A fleeting vowel can only appear between two consonants (**й** being a consonant).
 2. A word has a fleeting vowel only if the ending is null or begins with a consonant: люб**о**вь (null) - любви́ (vowel) - люб**о**вью (consonant).
 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>**е**ца́.

Outside of these patterns telling if a word has a fleeting vowel is difficult: 

 - ве́т**е**р - ве́тра 
 - ка́тер - ка́тера

When in doubt, use a dictionary or [this tool][2].


  [1]: http://russianmentor.net/gram/mailbag/topics/phon2.htm
  [2]: http://morpher.ru?s=%D0%B2%D0%B5%D1%82%D0%B5%D1%80