With Blender Internal (2.79 and older), you can add a UV layer, assign images to each face, Then enable the materials Face Textures
option.
Is there some way to to have a single material and multiple images assigned to different faces with Cycles?
I'm asking this because I'm writing an importer for a format that stores textures and materials as 2 separate values per face, if this is not possible I'll have to split up the material per texture, so I can workaround it if its unsupported.
Update 1): As has been suggested you can blend between shaders, this works OK for switching between 2 images, however I can't see a good way to do this with 10+ images (probably its possible with a large node setup and mapping nodes, but this becomes quite cumbersome).
Update 2): I've accepted one of the answers, however using blending like this is quite hard to control and not simple to just assign arbitrary images per face (as part of an importer), so I'll likely have to split up the materials per-texture.