お誕生日おめでとう vs 誕生日おめでとう
What's the difference? And is it needed?
The explanation by user3688956 gives the right interpretation. The one with お is a little more polite and more respectful, though it can be taken as slightly more distanced, if used for very closed friends. I'll illustrate the nuance. For example, compare calling your father "dad" or "father". While the use of the word father doesn't warrant a lack of affection, it has a more respectful or more distant tone (at least here in the US). The impression made with the use of お in the context of congratulating one's bday follows a similar logic.
While お is not necessary, if you are talking to a very traditional (older) person or those to whom you absolutely must show your respect, the use of お and ございます would ensure the highest level of respect. Omitting any one will change the level slightly.
That said, intentionally using polite or honorific expression towards close friend in Japan is a very common form of joke. I believe the same can be said in most cultures, if not all.
お誕生日おめでとう is a little bit more polite than 誕生日おめでとう.
the point is a little bit..