the main thing about bones animation is that you can change bones angles and add bones position in runtime. you can't do that with vertex animations.
for instance, say you have a character holding a gun, pointing forward.
now the player looks up, and you want the character to aim up.
with bones animation you can simply change the arms bone angle with ent_bonerotate(), like
Code:
ent_bonereset(player, "arm");
ent_bonerotate(player, "arm", camera.pan);
also, the most commom use for bones is adding bones positions. for instance, you can have in your mdl scenes animating only the legs of a character, like 'stand', 'walk' and 'run', and other scenes just for the arms, like 'hold_gun', 'shoot', 'reload'.
then you use ent_animate with the ANM_ADD flag to combine the animations. you can't do that with vertex animations.
hope that helped to clarify a little...
Filipe