Good question! Since we're a metal roofing distributor, we're going to focus on the pros and cons of putting a metal roof over existing shingles or wood shakes, just because those are some of the most common roofing materials out there.
There are many thousands of metal roofs installed over existing composition shingles and/or wood shakes that have done their jobs for decades. What's more, there's no reason to think they won't continue to perform for decades to come. Still, there are a handful of site conditions of which you should be aware to help you determine if your new roof could go over your old roof.
In an ideal scenario, a metal tile, shake or shingle roof should only be installed over one or two layers of existing roofing at most. And this is assuming that the existing roof framing and decking are both in good condition. How can you determine "good condition?" Walking around on the roof you're considering covering can help you identify soft spots or evidence of weak, rotten and compromised structural components. If there's any question about the integrity of these components, then removal should become an instant priority. If the roof seems to be straight and solid, and there's no evidence of persistent leaks inside, then it's probably a good candidate for an over-the-top application.
Let's assume that you've made this inspection and there are no apparent problems. The other thing to do is check out the planes of the roof from the ground. If they all appear to be straight and true, then the structure beneath is likely sound. If you can see visible "bellies" or depressions in the roof, that's reason enough to investigate the structural components of the roof so you can make sure there aren't broken or overloaded rafters or trusses.
Another thing to keep in mind - adding anothe layer of roof covering will raise the depth of the total roof covering. If you have roof accessories like skylights, roof-to-wall flashings, dormers, roof-top HVAC equipment and other adjoining details, the added height could be an issue. Make sure to consider in advance the extra height of the new roof assembly in order to avoid potential problems in these regards.
A final consideration - the installer will need to be able to securely fasten the new roof to the existing rafters or deck. This means that nails or screws must be long enough to penetrate both the existing layers and the wood deck beneath. Otherwise, you're compromising proper mechanical attachment of the new metal roof. If an installer can't readily determine how such secure attachment can be accomplished for your project, then you'll probably need to remove the old roof first.
To summarize - if you have the right conditions and an installer comfortable with the job, then installing a metal metal roof over an existing roof is not only better from an environmental standpoint (since it saves more debris from our landfills), but it can also save money and time, without sacrificing performance.