I know that Adobe After Effects can do this and I've used it before - http://www.adobe.com/au/products/aftereffects.html
Basically you can create layers using shapes or images you import into the program. From there you can set keyframes and animate them to move, scale, fade in or out. It's an extremely powerful program, even has a 3D engine.
Be warned there is quite a learning curve. You might be better off outsourcing it to a specialist.
Another option is Motion 5 from Apple, though I haven't tried it, just heard about it - http://www.apple.com/finalcutpro/motion/