Another thing that I think should be taken into consideration is that the Gondorian soldiers were constantly under attack. All that stress can be very tiring. It's called Battle Fatigue which is a proven fact. That's why the military rotates their troops. If every man is needed to defend the city the stress will take a toll on your body and mind.
Also the Gondorian soldiers were demoralized. They didn't have a strong leader in Denethor and they thought their captain Faramir was dead. If your enemy just threw the heads of your dead comrades all over the place wouldn't you be demoralized? They didn't have a strong leader really until Gandalf took the lead and they thought that there was no help coming. They thought that everything was lost until the Rohirrim showed up who hadn't been constantly fighting. So the Rohirrim's bodies and minds were fresher and ready for battle.
So I think that the Gondorian soldiers would have kicked some butt if they hadn't been besieged by the Enemy and would have showed the Rohirrim a thing or to if they hadn't been suffering from battle fatigue.