Boss fights are basically the best. They're the climax of the rising action, where the players really show their stuff, or suffer for it. They're also time for you to crack out earth-shaking badniks, with incredibly deadly abilities.
They're usually something that's fucking cool, too. A lich or a dragon, a god or an Old One. A tarrasque. Whatever. Something that kicks ass and players associate with corpses and tear-stained character sheets.
The best bosses are the bookends of campaigns, showing their faces early on in the campaign, intermittently pulling some strings, and then taking part in a major throw-down during the last or nearly last session.
During the Final Battle, PC deaths are possible or even unavoidable, depending on how difficult your campaign is. Total party wipeouts become a possibility that is more or less acceptable to your players, who wouldn't want the climax to be an easy fight. Heck, the harder it is, the happier the players will be, when they win (or almost win, which can be just as good).
Buzz-Kills
-Watch out for the fight being too easy, even if the players have an amazing plan. But similarly, it shouldn't be too hard in a way that isn't fun. Bosses should sizzle on your players' taste buds, one way or another, rather than be 1,000 hp wastes of time.
-The boss shouldn't be a one-trick pony. Ideally it should have two stages, where the boss alters or steps up its mode of combat, usually after it is reduced to half life.
-Watch out for save or die effects, or their cousins, domination/charm effects. A good rule of thumb is to give a boss the ability to automatically have an effect like these cause the boss to lose his next turn, rather than die. Or to have the effect wear off at the end of a round, in the case of dominate effects. This avoids you simply having a monster be immune to an ability, and gives the players their druthers.
Tips!
-Broadcast how difficult it's going to be to kill the boss, in-game rather than out of game. Out of game gloating can backfire way too easy. But in-game foreknowledge can impress your players into performing better, and possibly give them some tips about how to win.
-Outline what's at stake to the players if they fail to defeat the boss. It doesn't need to be a "save the world" scenario. There can be very clear, unpleasant consequences, without it being an earth-shaking scenario.
-The final session of the game can be the most important of the entire campaign. It's the one players will remember best, for chronological reasons. The boss should be memorable, and the fight should encapsulate and exemplify all the good things from the entire campaign.