For those who DIY undercoating, there are some disadvantages.
It's impossible to cover every area on the vehicle with this method and hard to reach places are left unprotected, often these are the areas that are most prone to corrosion.
It's effective as long as the protective surface is not damaged. In real terms this is not possible and where damage occurs, no matter how small, rust will occur. Cracking at the body joints, stone chips, scratches, peeling and brittleness of the undercoating can result in water getting trapped between the metal and the undercoating allowing rust to form where you can't see it until it's too late. This is why many rust proofing and undercoating companies recommend that you get your car or truck inspected and re-sprayed every year. This, of course, costs you more money.
Even if your vehicle already has some type of undercoating it will probably still rust.
Me personally would rather have the professionals do it right. Remove the old undercoat, clean and dry under there, and re-apply a new one (preferably at least 2 coats). Kinda like what they put on truck beds.