When texturing objects in Blender, I've noticed to different ways to apply multiple textures to an object: Texture Painting and Assign Texture. The former is slightly more complicated to use, but allows a finer degree of control over where you apply the secondary texture. The latter, in which you simply select the faces on the model and the texture to be applied, then click the "Assign" button of the Materials tab in Edit mode, is significantly easier if not more intuitive to use, even if it limits you to changing entire faces at a time.
Are there any other reasons to choose one of these methods over the other? I've seen various Blender tutorials use different methods even when in context it seems like it would add an unnecessary degree of complexity. Is there some behind-the-scenes reason to use Texture Paint over assignment or vice-versa?