Decide what type of roofing you want. Are you looking for asphalt shingles or wood? Or is slate more your style? Your decision will depend largely on the style of your home and your budget.
Contact several roofing contractors. Ask the builder, as well as friends and neighbors, for recommendations. If you're having difficulty locating contractors, try contacting the local builders association to see if it can suggest someone.
Have the contractors come out and quote prices on the project. Provide access to the property and make sure all the contractors are bidding on the same type of roofing (such as a specific grade of asphalt shingles).
Make sure the roofers are including the removal of old roofing in their bids. (Note that it's not always necessary to remove the existing roof when installing a new one.)
Find out if each roofer has experience with the type of roofing you're installing. Most roofers have asphalt-shingle experience, but wood and slate roofing are specialties. If you're installing an expensive wood or slate roof, you'll want a contractor who has experience in this area. Ask to see pictures of prior projects.
Ask for references and check them out. Are the previous customers happy with the work that was done for them?
Execute a contract for the work specifying cost, payment schedule, material to be used, start date and completion date. Try to minimize the deposit you pay to the contractor prior to the start of the work or delivery of materials.