In the Hebrew calendar, an ordinary year is 12 lunar months (at 29.5 days each), for a total of about 354 days. So that the Hebrew years don't get too out of sync with the solar year, a 13th month is added to 7 out of every 19 years, viz. to years 3, 6, 8, 11, 14, 17, and 19 in each 19-year cycle.
After the leap month is added, the holidays occur later (relative to the solar calendar) than in other years. And the latest they can possibly be is in the 8th year of the cycle, because it's a leap year that occurs only 2 years (rather than 3) after the previous leap year. [Yes, the 19th year is also such a year, but it's not quite as late as the 8th year. Figuring out why is left to the reader as an exercise.]
One such 8th year was 5708 (since 5700 = 19*300), or 1947-48 on the Gregorian calendar. The State of Israel declared independence on 14 May 1948 = 5 Iyar 5708. From that point on, 5 Iyar was celebrated as Yom Ha'atzma'ut, but because the Hebrew calendar was so late that year (relative to the solar calendar), Yom Ha'atzma'ut almost always falls earlier than May 14, the secular anniversary.
57 (= 19 * 3) years later, we're back to the 8th year in the cycle! The holidays in 5765 are, of course, crazy late: Pesach went into May for those observing 8 days, Rosh Hashanah is in October, and Chanukah 2005 bleeds over into 2006. Therefore, 5 Iyar will return to May 14!!!
However, May 14 is on Shabbat this year, so the Knesset has bumped up Yom Ha'atzma'ut to Thursday, May 12 (3 Iyar), so that Israel can have a three-day weekend. Oh well.
By the way, the next crazy-late 8th year after 1948 was of course 19 years later, in 1967. So likewise, Jerusalem was reunified on 7 June 1967 / 28 Iyar 5727, but Yom Yerushalayim is almost always observed earlier than June 7.