Two roofers gave me a price for a new roof. One was $2900 and one was $1400. How could the difference be so big?

Widely differing prices are quite common in roofing. Part of the difference might be the quality of the shingles, and perhaps one is tearing off the old roof before adding the new one. You may also be dealing with two very unequal firms. The guy that slaps up a roof with little attention to detail can charge a lot less than the guy who spends the time and money it takes to get a well-trained, competent crew. To sort it all out, I'd check out the two firms more carefully and ask them about why there is such a big difference.