We can have lots of "days" -- I think there's even a national "eat an avocado day" (or if not there oughta be, cause we have them for just about everything else).
But a national HOLIDAY is different. And King is remembered for the entire civil rights movement, which while he didn't start, he came to symbolize. And was its greatest leader when real societal & legislative changes finally began to come about.
Milk was an inspiring local gay leader, Shephard a tragic gay martyr. Both continue to draw the attention of the nation. But they led no great national crusades, even if today's gay rights movement draws inspiration from them.
BTW, my only unhappiness with the MLK holiday is that it displaced individual holidays for Washington & Lincoln, who got lumped into a generic Presidents Day (actually I think the basic public law still designates that day for Washington, but its been renamed in common usage, so technically Lincoln was the sole loser).
Apparently some kind of political compromise to offset objections to MLK on the grounds that the US couldn't afford another new national holiday. And that persuaded enough Southern members of Congress to pass it, who hated Lincoln because of the Civil War. (And then many right-wing states promptly refused to acknowledge MLK Day, anyway, so the number of annual holidays celebrated by many Americans actually declined by 1)
Given how these holidays stimulate retail sales I think we could do with a few more of them. Not to mention how corporate America has done it's best to undermine the 40-hour workweek, so that Americans are working longer than they have for nearly a century. Keep MLK, but let's restore Lincoln, and Washington by name. I mean, don't those guys rate, too, if anybody's gonna?
Oh, and I'd support a Benjamin Franklin Day national holiday, too. We could stick him where we've got a lull at present, like in March-April or August, I'm sure somebody could think of a reason. He died in April, 1790, so that could form a justification.