Many, many things can cause a headache. There are literally hundreds of different types of headaches. Sinus headaches are caused by inflammed tissue in the paranasal sinuses. These are usually from allergies or infections such as sinusitis. There are vascular headaches, the blood vessels in the brain become inflammed or constricted causing a decrease in blood flow. Migraine headaches are more of a neurologic problem with an underlying genetic component. Some headaches are caused by muscle spasm or stress. Fatigue can also cause headaches.
If you experience headaches chronically, go see your physician so he can try to diagnose the problem.