We currently have a gravel and tar flat roof, and it's near the end of its lifespan. We're looking to replace it, and would like to know what's the best material to use. We live in Southern California.
I'm a huge fan of EPDM rubber roofs. They are even starting to be feasible for DIY installation.
The most important thing is to glue them down correctly to the roof deck. Otherwise weather forces will make them shift around, fold, stretch, tear seams, or pull away from corners and edges.
The roof decking must be in good condition - so it can glue down properly, and not be stressed or punctured by the decking coming up.
I would not put it over an old roof either, same reasons.
Also, it does not like tar. Tar causes it to melt. If you have simpleminded buffoons who work on your roof and think tar is for all roof repairs, that will be a problem.
Fortunately rubber roofs aren't terribly hard to patch provided you use proper materials.
Cost of the rubber material is quite low, often under $1/foot, but the correct glues and supplies will cost more than the rubber! The stuff comes in widths up to 20 feet.
Almost all rubber material is black. That means your roof will get quite warm. "The thing to do" nowadays especially in CA is to paint roofs white, if you aren't sticking solar panels up there. You can get white rubber, or white paint, but you must be selective as to type of paint. Painting the roof will make it less repairable.
Edit: Apropos a comment, one idea I've thought of to make rubber roofing easier to work with, is to create some vertical ribs on the roof, perpendicular obviously to the water flow. Something like this, assuming a parapet on three sides.
The ribs would be carefully positioned so they can be covered by a single sheet of rubber roof material. A cap over the ribs and you're all set.