I would trust a 2012 U.S. Department of Health study:
http://www.cdc.gov/nchs/data/series/sr_11/sr11_252.pdfBetween 2007-2010, the average male height in the U.S. is 175.9 cm (5 ft 9.25 in) and 162.1 cm for U.S. females (5 ft 3.81 in). However, this statistic is for everyone over the age of 20. The problem with that is that it includes people over 50 who usually start shrinking an inch or two until they die.
To get a real measure of average height, you have to look at people who are 20-39 years old. And that average height is 176.3 cm (5 ft 9.4 in) for all races, 178.4 cm (5 ft 10.2 in) for non-Hispanic Whites and 170.5 cm (5 ft 7.1 in) for a Mexican American. I think this is where you got differing numbers. As you can see, the immigrants bring down the average height of males.
So the question between 5'9.4" vs 5'10.2" is: are you looking at the average height of every male in the U.S., or just the white males in the U.S.?
The reason why DevilDog is reporting the average height at around 5' 8"- 5' 9" is probably because NYC has a very high immigrant population, which brings down the average. Immigrants are usually shorter because of malnutrition and genetics.