One program I always find myself coming back to is CharacterFX. It's just so easy to use, and it exports DX9 .X files which are great for DBPro. It's free now, so if anyone is stuck for a workable animation program or struggling to learn the more complex options, I highly recommend it.
Any mesh can be animated, however there are 2 distinct types of animation with the technology we have available. There is hierarchy animation, which uses limbs that are linked together, and then each limb is animated. This tends to be used for mechanical objects, like doors, guns, vehicles etc. Then there is bone or skeletal animation, this involves defining an underlying skeleton that has the mesh vertices assigned to joints, so the mesh will deform when animated, unlike hierarchy which keeps limbs solid. Skeletal animation can of course be used for anything, but for high polygon models it might be too much of a strain to warrant using - like the translations required in offsetting a limb mesh is a lot quicker than the translations required in 'bending' a mesh. If you had 100 robots that are hierarchy animated, they'd run much smoother than 100 bone animated characters of the same polygon count. Typically the best program for hierarchy animation is 3DS Max, even going back to version 4, I'm not sure what alternatives there are for strict hierarchy animation.