In most cases, it is always best to remove old roof shingles before installing new roofing. Old roof shingles offer absolutely no insulating value. To insulate, a material must trap air, and roof shingles won't do this. In fact, they can actually have the reverse effect since old layers of shingles can act as "heat sinks," trapping and storing the sun's heat. That heat will radiate back into the attic space, making that space warmer and potentially raising your cooling costs.
Another economic factor to consider is that a second roof layer will usually not last as long as a single layer. In my 20-plus years as a professional home inspector, I often observed that two-layer roofs seemed to have about 2/3 of the life of their single-layer counterparts. The reason? Heat buildup is greater on a two-layer roof. The additional mass that the old layer contributes stores heat and allows the new layer to dry out all that much faster.
So, here's the math: If you expect to be in your home for most of the 20-year-plus life span of a new roof, you are almost always better off spending a bit more to have the old layers stripped off, because the old roof shingles don't insulate and lead to the other problems we've covered here. However, if you are re-roofing to sell the home or you expect to be there for less than 10 years, save the cash and add another layer.