I'd recommend you consider having a separate entity (a separate table) for inactive images. That way you won't need an "active" attribute in tblUserImages, all images in this table will be active. You would only reference the inactive image table if you wanted to query the image history. The active image table would either have a unique constraint on UserId, or it could simply use UserId as a primary key.
This probably sounds like an esoteric solution, but it is based on experience of having seen this same data modelling problem come up in other systems. The core issue is this: the active state of the system is not the same as the historical state of the system. An entity that represents a part of the active state is not the same as an entity that logs historical state, even if the information in both entities overlap. If you evolve your data model using this idea, you should see that in fact the attributes of historical entities do tend to vary from their active "operational" counterparts. In other words you may find that the field layout of the active image table may not be exactly the same as the ideal field layout for historical image table.
The only drawback I can see in structuring the data in this way is the necessity to copy the active image into the historical table at the point that it is replaced. In several important respects this solution is superior - queries will be faster, especially if you use a clustered key for user id. Most importantly the solution will be easier for other coders to understand. Creating a filter index is a complete solution and a good use of SQL Server features, but it may not be as clear to future maintenance programmers.