There are two main types of wars in modern times (let us say that “modern” means since the end of the Cold War). There are wars within or between small countries and there are wars between large countries and small countries. There are different causes for these two kinds of wars.
Wars within or between small countries are typically caused by some combination of ethnic tensions, religious tensions, oppressive government, and a desire for resources. For example, there was a civil war going on in Sudan until the southern part of that country broke away and formed the country of South Sudan. This war was caused in part by ethnic tensions between Arabs and Africans and in part by religious tensions between Muslims and Christians. It was also caused in part by the existence of an oppressive government and conflicts over the oil in the South.
Wars between large countries and small countries today typically happen when a small country does something that endangers the large country’s interests. Typically, the small country’s actions are motivated by factors mentioned above. For example, then, Saddam Hussein wanted to develop weapons of mass destruction to help in his ethnic/religious conflicts with Iran and Israel and his conflict with Saudi Arabia and Kuwait over oil and territory. His actions were seen by the US as a danger to US interests. This caused the US invasion of 2003.
The answer of this question can be very long in discussion.
But I would like to share just in one line- Today the meaning and reason of war is as parallel to the meaning of word "Crook".