Sachverhalt: A. A.a Die Staatsanwaltschaft IV des Kantons Zürich führt eine Strafuntersuchung gegen den serbischen Staatsangehörigen X._, geb. 17. Mai 1981, wegen eines Gewaltdelikts, begangen am 6. November 2011 in einem Restaurant in Zürich. Am 28. November 2011 wurde X._ verhaftet und mit Verfügung des Zwangsmassnahmengerichts des Bezirks Zürich vom 30. November 2011 in Untersuchungshaft gesetzt. Das Zwangsmassnahmengericht verlängerte die Haft am 2. März 2012 bis zum 1. Juni 2012 und am 30. Mai 2012 bis zum 30. August 2012. Im Rahmen des Untersuchungsverfahrens wurde unter anderem ein psychiatrisches Gutachten zu X._ eingeholt, das sich insbesondere zu dessen Gewaltneigung und dem Einfluss des Alkoholkonsums darauf äusserte. A.b Am 30. Juni 2012 stellte X._ ein Haftentlassungsgesuch, das vom Zwangsmassnahmengericht am 6. Juli 2012 abgewiesen wurde. Mit Beschluss vom 20. Juli 2012 wies das Obergericht des Kantons Zürich, III. Strafkammer, eine dagegen erhobene Beschwerde ab. B. Dagegen führt X._ Beschwerde in Strafsachen beim Bundesgericht mit dem Hauptantrag, er sei aus der Untersuchungshaft zu entlassen, und dem Eventualantrag, die Haftentlassung sei unter Anordnung von Ersatzmassnahmen (Auflage der ärztlichen Behandlung und Kontrolle und der Einnahme von Antabus) zu verfügen. C. Die Staatsanwaltschaft schliesst auf Abweisung der Beschwerde. Das Zwangsmassnahmengericht und das Obergericht haben auf eine Stellungnahme verzichtet. D. Mit Eingabe vom 15. bzw. 16. August 2012 informierten X._ sowie die Staatsanwaltschaft das Bundesgericht über eine dem psychiatrischen Gutachter unterbreitete Zusatzfrage. X._ liess sich sodann am 21. August 2012 nochmals zur Sache vernehmen. 