As a couple others have posted, what really makes a boss fight for me as well isn't something that's necessarily in the fight itself, it's in the build up. Especially when dealing with final bosses, it's important to actually have the fight feel important and the enemy feel powerful. You need to feel that A.) fighting the boss has meaning and B.) that the enemy you've seen growing in power maybe over the course of the entire game actually lives up to what you've been seeing.
Personally, I like variety in my bosses. I enjoy the multi stage fight, the tactical smart fight, the reflex testing fight, the tough guy who in reality just relies on his minions fight.. heck, I even enjoy the bullet sponge endurance test at times, but I don't like it when any of those formats are repeated too often within the same game. It just feels lazy when every second boss, or even every single boss, are basically the same thing even if that "thing" is good on it's own.
The two things I hate in boss fights are excessive QTEs and game rule breaking. QTEs in general are garbage and are just crutches for uninspired game design. If you can't think of a cool mechanic for a boss fight or want to do something cool but your engine can't handle it, it's not okay to just slap in a QTE instead.
Game rule breaking, though, is probably even worse in my eyes. Fighting games are notoriously bad for this. I don't care if it's the final boss and he's all cool and powerful and stuff, he should still perform within the rules set out by the rest of the game. I shouldn't all of a sudden not be able to block anything. If I smartly block or dodge an attack, I should be able to counterattack. Etc. Even if a boss requires an obscure mechanic you may have been able to get through the previous game without using, it should still be an actual mechanic that exists and isn't just some BS thrown in out of nowhere for the fight in question.