When Rosh Chodesh falls out on a Sunday, our practice is that on the Shabbos which precedes it we recite the special haftorah of Mochar Chodesh. When any other yom tov falls out on a Sunday we do not chose a haftorah that speaks of the upcoming yom tov. Why do we only have this practice with respect to Rosh Chodesh?
Rav Soloveitchik suggested the following: one of the berachos we recite after reading the haftorah contains a prayer requesting of Hashem that he should bring us joy by bringing Eliyahu Hanovi and Moshiach. The last of the nevi'im was Malachi, who was involved in the building of the second Beis Hamikdash. He knew b'nevuah that there will no more prophets sent to the Jewish people until Eliyahu, would come to announce to the sanhedrin that tomorrow the Moshiach will appear. The fact that the Anshei Kenesset Hagedola chose to incorporate this request into the berachos of the haftorah seems to indicate that one of the purposes of reciting the haftorahs is to strengthen the belief in the coming of Moshiach. The choice of quite a few of the sections of novi which we read for the haftorahs would also seem to indicate the same.
The Midrash Rabbah points out that the Jewish calendar is a lunar calendar. The moon grows progressively bigger for fifteen days starting from the molad until it is a full moon, and then becomes progressively smaller for fifteen days until it disappears from sight for eighteen hours. So too, there were fifteen generations starting from Avrohom Avinu until the days of Shlomo Ha'melech, during which time the Jewish people grew to their peak. During the days of Shlomo Ha'melech there was peace, no poverty, and a Beis Hamikdash. Then there were fifteen generations from Shlomo Ha'melech until Tzidkiyahu Ha'melech, during which time everything disintegrated. Tzidkiyahu Ha'melech was blinded by the king of Bavel, and according to the Midrash this corresponds to the disappearance of the moon for eighteen hours at the end of the monthly lunar cycle. If Sunday is Rosh Chodesh, then on Shabbos the moon will not be visible. Today, living in galus, we are experiencing this long period of time wherein the malchus beis Dovid has disappeared. But, as we mention in Kiddush Levana, the Jewish people in general, as well as the malchus beis Dovid in particular, will renew themselves just like the moon. The Jewish people have a lunar calendar because our history is similar to the moon - we have ups and downs, and we were promised by Hashem that our nation as well as the malchus beis Dovid will be renewed.
The story contained in the haftorah of Mochar Chodesh is about the love between Dovid and Yehonasan. Yehonasan loved Dovid so much that he protected him from his father's anger and saw to it that Dovid would become the next King. However, if Dovid loved Yehonasan also, why didn't he allow Yehonasan to become the next king? The answer obviously is that they had heard from the novi that the promise for the renewal of the Jewish kingdom in the future would only apply if it would be the malchus beis Dovid. That is why Yehonasan had to give up the malchus to Dovid as opposed to Dovid allowing Yehonasan to be king. The choice of this haftorah is to strengthen the belief in the coming of Moshiach. It is well over two thousand years since Tzidkiyahu Ha'melech was blinded and all of this long period is, in a certain sense, comparable to the eighteen hours that the moon disappeared.