Array modifier (vary textures on duplicates)
Well seeing as you said 'slightly' then yes, you can have slightly different textures on an object that has been arrayed:



This cube has a texture which uses 'Generated' coordinates instead of other texture mapping coordinates such as UV.

Generated coordinates can be set for either the internal renderer in the mapping panel of the texture settings:



Or in Cycles with a 'Texture Coordinate' node:



The example above uses a procedural cloud texture with generated coordinates. This method doesn't allow you to specify different textures to appear on each cube, however, it does allow you to slightly vary each different cube.