If the concrete in your driveway is cracked or otherwise damaged, it's not a good idea to put new concrete over it. The cracks in the old concrete will eventually damage the new concrete, and in time you will begin to see cracks in your newly surfaced driveway. Thus, it makes more sense to remove the old concrete before laying down new concrete.
Don't put concrete over an asphalt driveway, or vice versa. Concrete reacts differently to heat and cold than asphalt does, so you're more likely to get cracks or other damage if you put one over the other. In addition, concrete looks different than asphalt, so putting one over the other may dramatically change the style and design of your driveway.
Your driveway needs to meet the street at its current level. If you put new concrete over old, the driveway won't slope down enough into the street. In similar fashion, if you have a garage, the driveway needs to slope into the garage. So even if you decide to put new concrete over old, you should remove the old concrete at the two ends of the driveway so that you can drive in and out properly.
Concrete expands and contracts when the weather changes. If it is not put down correctly, these changes can cause it to crack. If you're replacing a concrete driveway because of cracking, talk to your contractor to make sure he has a plan to guard against cracking in your new concrete driveway. In some cases, contractors may "plan" for cracks so that the concrete can expand and contract correctly.