YES: Gerard Butler does do his own singing in the Phantom of the Opera (2004).
In fact, all of the principal actors and actresses provided their own singing voice, except for Minnie Driver (who played Carlotta)...because of the high-opera-notes required for her character, her singing voice was over-dubbed by a more professional opera singer, Margaret Preece (who played Carlotta in the 1986 musical, and also acted as Carlotta's confidante in the 2004 film). Although, Driver's real singing voice is heard in the end titles with the song, 'Learn to be Lonely'.
A little trivia: Gerard Butler had only four singing lessons before he had to audition in front of Sir Andrew Lloyd Webber with the song, 'Music of the Night.' The other actors, Patrick Wilson (Raoul) and Emmy Rossum (Christine) have had previous professional singing foundations.
I hoped I helped!