Эдвардс — воспитанник клуба английского «Шрусбери Таун» из своего родного города[2]. 3 мая 2003 года в матче против «Сканторп Юнайтед» он дебютировал во национальной лиге. За четыре сезона Дэвид провёл за «Шрусбери» более 120 матчей во всех сезонах. В 2007 году он перешёл в «Лутон Таун»[3], за который отыграл один сезон в первой лиге. В 2008 году Эдвардс присоединился к «Вулверхэмптон Уондерерс». Сумма трансфера составила 675 тыс. фунтов[4][5]. 18 января в матче против «Сканторп Юнайтед» он забил свой первый гол за «волков» в Чемпионшипе[6]. В 2009 году Дэвид помог команде выйти в элиту. 15 августа в матче против «Вест Хэм Юнайтед» он дебютировал в английской Премьер-лиге[7]. 20 сентября в поединке против «Фулхэма» Эдвардс забил свой первый гол на высшем уровне[8]. В 2012 году «Вулверхэмптон» вылетел в Чемпионшип, но Дэвид остался в команде.
Летом 2017 года Эдвардс перешёл в «Рединг». 9 сентября в матче против «Бристоль Сити» он дебютировал за новую команду[9]. 26 сентября в поединке против «Миллуолла» Дэвид забил свой первый гол за «Рединг»[10].