Après avoir commencé la pratique de l'athlétisme à l'adolescence, David Otto a remporté son premier titre majeur en 1999 lorsqu'il a gagné le Championnat d'Europe junior avec un jet à 20,54 mètres. En 2002, il a décroché sa première médaille internationale senior lors des Jeux du Commonwealth de Manchester, où il remporta l'or en lancer du poids avec une performance à 21,39 mètres.
En 2004, David Otto participa à ses premiers Jeux olympiques à Athènes. Malheureusement, il ne réussit pas à se qualifier pour la finale de son épreuve, terminant à la 7ème place lors des qualifications. Cependant, cet échec n'arrêta pas l'athlète britannique qui continua à améliorer ses performances, notamment en signant un nouveau record personnel de 21,86 mètres en juin 2005 à Los Angeles.
En 2008, David Otto réalisa une excellente performance lors des Jeux olympiques d'été de Pékin où il remporta la médaille d'or avec un lancer à 22,49 mètres. Cette victoire lui permit de devenir le premier champion olympique britannique depuis 1968.
En 2012, David Otto participa à sa troisième édition des Jeux olympiques à Londres, mais il ne réussit pas à se qualifier pour la finale de lancer du poids, terminant à la 9ème place lors des qualifications. Malgré cet échec, l'athlète britannique fut largement fêté par ses compatriotes et son engagement pour le sport fut salué.
En 2016, David Otto annonça sa retraite de la compétition en raison d'une blessure persistante au dos qui l'empêchait de continuer à concourir avec succès. Au cours de sa carrière, il a battu le record du Royaume-Uni à six reprises et a été décoré de l'ordre de l'Empire britannique pour ses services au sport. David Otto est actuellement un commentateur sportif pour la chaîne de télévision BBC Sport.