Если географическое название употреблено вместе с родовым наименованием город, село, деревня, хутор, река и т. п., то название обычно склоняется:
В городе Москве, из города Ростова; в деревню Поповку, у села Бородина.
Однако и в этом случае склоняется оно не всегда. В случае если название употреблено со словом город, родовое понятие и название не обязательно должны совпадать в роде – все равно склоняться будут оба слова. В остальных случаях, если род обобщающего нарицательного слова и топонима не совпадают, название не склоняется:
в деревне Полом, на реке Дон.
Также географические названия с родовым словом не склоняются, если внешняя форма названия соответствует форме множественного числа:
в городе Мытищи.
Также появилась тенденция к несклоняемости при наличии обобщающего наименования у топонимов среднего рода, оканчивающиеся на -о, -е:
между селами Милятино и Барятино.
Если название употреблено без родового наименования, то оно склоняется:
В Калугу, под Мытищами, в Великих Луках.
Тут основная трудность – склонение топонимов славянского происхождения на -ов(о), -ев(о), -ин(о), -ын(о). Многие считают, что они не склоняются, однако это не так. Традиционно такие названия склоняются:
в Кондрове, в Балабанове, к Барятину, в Милятине, из Людинова.
Однако в последние десятилетия сложилась тенденция к употреблению несклоняемого варианта.
Изначально все подобные названия были склоняемыми – все в школе читали Лермонтова:
Недаром помнит вся Россия про день Бородина!
Первоначально несклоняемые формы употреблялись лишь в речи географов и военных, потому что им очень важно было давать названия в исходной форме, чтобы не путать:
Киров и Кирово, Жуков и Жуково и т. п.
Но постепенно несклоняемые формы стали проникать в письменную речь.
Со временем несклоняемые варианты стали настолько широко распространенными, что изначальный склоняемый вариант многими теперь воспринимается как ошибочный. Однако и склоняемый, и несклоняемый варианты соответствуют современной грамматической норме.
В случае сомнений, склонять ли название среднего рода, лучше руководствоваться следующим правилом: если имеется родовое слово (город, район, село и т. п.), то по современным нормам название не надо склонять:
из города Людиново, в сторону села Барятино.
Если же родового слова нет, то можно употреблять оба варианта – склоняемый и несклоняемый:
в Людинове и в Людиново, в сторону Кондрова и в сторону Кондрово, из Балабанова и из Балабаново.