Some of the complexity in softwares are inherent in the problem domain, like complex rules of business. But others are just man-made.
A state is a collection of information held (at any time) by a part of the system that is accessible by other parts of the system. When different parts of the system can access and update program state, it becomes harder to coordinate between them and keep the system in a consistent state. This makes system hard to understand, modify, extend and to test comprehensively.