I personally use After Effects for this, but I like to build my effects from the ground up. AE has some built-in effects, but you will get much better results from creating them yourself.
You can also do all of that in After Effects. It's not just as easy as plugging them in, but you can create all of that really well — you just have to spend a lot of time if you want it to look believable.
There used to be a really cool program I used a lot at one time called AlamDV. Don't know what it's current state it, but it was doing really good quality work for us a couple of years ago. Then I started using Shake, so everything else is just obsolete to me.