У дорослому футболі дебютував 1999 року виступами за «Манчестер Юнайтед», в якому провів один сезон, взявши участь лише у одному матчі чемпіонату. Не пробившись до основного складу «червоних дияволів», був змушений відправитися в оренду у нижчоліговий «Порт Вейл».
2000 року, спочатку на правах оренди, а потім і повноцінно, перейшов у «Престон Норт-Енд», в якому в сумі провів 5 сезонів, з невеликою перервою на орендні виступи за «Норвіч Сіті».
Своєю грою за команду з Престона привернув увагу представників тренерського штабу клубу «Лідс Юнайтед», до складу якого приєднався в жовтні 2004 року. Відіграв за команду з Лідса наступні три сезони своєї ігрової кар'єри. Більшість часу, проведеного у складі «Лідс Юнайтед», був основним гравцем атакувальної ланки команди. Після того як «Лідс» за підсумками сезону 2006–07 вилетів до Першої ліги, покинув клуб.
В січні 2011 року приєднався до складу шотландського «Рейнджерса» і за півтора року встиг відіграти за команду з Глазго 19 матчів в національному чемпіонаті, ставши чемпіоном Шотландії і володарем кубка ліги. Влітку 2012 року клуб через борги був понижений до третього дивізіону, після чого Девід покинув команду.
Завершив професійну ігрову кар'єру у клубі «Бері» з Першої ліги, за який виступав протягом сезону 2012/13 років, проте не врятував команду від вильоту до четвертого за рівнем дивізіону Англії.
Виступи за збірні
З 1993 року виступав у складі юнацької збірної Північної Ірландії, взяв участь у 17 іграх на юнацькому рівні, відзначившись 9 забитими голами.