How many verses are to be read during the Haftorah:
Shabbos: On Shabbos, the person who reads the Maftir from the Navi is to read no less than 21 verses. Nonetheless, if the entire subject of the chosen Parsha in Navi contains less than 21 verses, such as the Parsha of [Haftorah for Shabbos] Shuva [Hosheia 14] which is small, or the Parsha of [the Haftorah for Parshas Tzav which is] Oloseichem Safu Al Zivcheichem [Yirmiya 7:21], then it is not necessary to read more verses from elsewhere (neither before or after the Parsha) in order to complete the reading of 21 verses.
Yom Tov: On Yom Tov, the person who reads the Maftir from the Navi is to read no less than 15 verses. Nonetheless, if the entire subject of the chosen Parsha in Navi contains less than 15 verses, then it is not necessary to read more verses from elsewhere (neither before or after the Parsha) in order to complete the reading of 15 verses.
Fast day: On a fast day, the person who reads the Maftir from the Navi is to read no less than 9 verses.
Bedieved, what is the law if less than the above amount of verses was read?
So long as three verses were read the Haftorah remains valid, although nevertheless one is to make up the missed verses without a blessing. If less than three verses were read, then it is to be re-read with its blessings.
Practically, how many Haftorahs are read on Shabbos that contain less than 21 verses?
Practically, according to Chabad custom, the following Haftorahs are less than 21 verses, and some even less than 15 verses:
Sefer Bereishis: Bereishis, Noach, Vayeitzei, Vayeishev, Mikeitz, Vayigash, Vayechi.
Sefer Shemos: Bo, Yisro, Mishpatim, Teruma, Tetzaveh, Ki Sisa, Vayakhel.
Sefer Vayikra: Shabbos Hagadol of Shabbos Erev Pesach, Tzav, Shemini, Metzora, Acharei Mos, Kedoshim, Emor, Behar, Bechukosaiy.
Sefer Bamidbar: Balak.
Sefer Devarim: Re’eh, Ki Seitzei [if it does not fall on the 14th of Elul, in which case Rini Vesimchi is made up], Shabbos Shuva, Vezos Habracha.
Other times: Shabbos Chol Hamoed Pesach, The second Shabbos Chanukah [when applicable].
 Admur 284:1; See Piskeiy Teshuvos 284:3
 Admur ibid; Michaber and Rama 284:1; Tur 284; Megillah 23a; Maharam Paduva 78; Abudarham Seder Shacharis
 The reason: As there are seven Olim called up to read from the Torah on Shabbos, and one is required to recite three verses corresponding to each Olah, for a total of 21. The reason why this is done is because one time there was a decree of religious persecution was made against the Jewish people, that they should not read from the Torah. They thus read from the Prophets a subject similar to that of the Parsha, and called up seven people corresponding to the seven people who need to be called up to read from the Torah. Now, they would not read less than three verses per person, just as we do not read less than three verses when reading from the Torah. Altogether, there were 21 verses read. Later on, when this decree was abolished, and they returned to reading from the Torah, they established that on Shabbos a person is to read 21 verses from the Prophets, from a subject similar to that week’s Parsha. [Admur ibid; See Tosfos Yom Tov Megillah 3:4 in name of Sefer Hatishbi; Abudarham ibid; Taz 284:1; Bach 284; Levush 284:1]
 Admur ibid; Rama 284:1; Maharam Paduva 78
 The reason: On Yom Tov, it suffices for 15 verses to be read, corresponding to the five Aliyos called up to the Torah. [Admur ibid]
 Kneses Hagedola 284:1; Olas Tamid 284:1; Kaf Hachaim 284:8; Piskeiy Teshuvos ibid
 Ashel Avraham Butchach 284; Piskeiy Teshuvos ibid