Если в двух словах, то итератор - это такой объект, который каждый раз по запросу может выдать либо некоторый элемент, либо сообщение о том, что у него больше нет элементов.
Самый простой вариант - итератор по списку. Он каждый раз по запросу будет выдавать по одному элементу списка, начиная с первого, и заканчивая последним, после чего выдаст сообщение, что элементы закончились.
При этом итератор не обязательно выдаёт элементы из заранее существующей коллекции, он может их прямо в момент запроса создавать по определённому правилу. Такие итераторы могут быть и бесконечными, то есть сколько бы запросов они не получили, они всегда готовы выдать ещё и никогда не скажут, что элементы закончились.
Пример - итератор, который выдаёт 0 или 1, чередуя их.