You would use a Dictionary<int, int> if your indexes have a special meaning besides just positional placement.
The immediate example that comes to mind is storing an id column and an int column in a database. For example, if you have a [persion[person-id] column and a [personal-pin] column, then you might bring those into a Dictionary<int, int>. This way pinDict[person-id] gives you a PIN, but the index is meaningful and not just a position in a List<int>.
But really, any time you have two related lists of integers, this could be an appropriate data structure.