Freeza, no contest. He's one of the best villains of all time, in every media. As a kid, I was terrified of him, every time he appeared on screen the tension went up, you just stopped and listened to what he had to say cause he could murder anyone whenever he felt like it. Gohan and Krillin were in constant mortal danger all the time in Namek, the stakes felt very real. His Brazilian voice also helped, cause it's deep and altive, menacingly well mannered.
His arc is also the best, tying into the very beginning of Dragon Ball, explaining who Goku is, why he is an orphan, and why he was sent to earth. He is the ultimate villain of the series, and his defeating closed every knot about Goku's origin and his mission as an avenger of his race but also as a naturalized earthling. Everything that came afterwards felt a bit like fillers (although I still love it). I also like how it was the last time we had a hunt for the Dragon Balls, nodding to the beggining of the series, and how well it was implement into the plot considering that everybody could fly at that point and it could have been so trivial to get them all.
Cell always felt a bit forced cause no way a man made Android could reach that power level. It's an interesting concept bringing the Red Ribbon back, and I like the time traveling stuff, but there should be a better explanation for his power level. I do like his arc overall, though, and he's a competent villain, just nowhere near Freeza.
Buu is... The guy they had to defeat in the last arc. His entire arc while still good (I mean, it's Dragon Ball) was just an excuse to show more fights, more transformations and more power levels. The SSJ3 feature was super lame, and Buy is just there to be fought against. I like fat Buu's development, and I like adult Buu's primal brutality, but that's it.