In addition to the causes of iron deficiency outlined by
paraclete's excellent writeup, there is one more -
genetics.
B-Thal Trait is one of the most common versions, and is found in folks who either was born in or have close ancestors who lived around the Mediterranean and Asia. I have B-Thal Trait due to my Italian ancestry, and my kids also have it.
The symptoms of B-Thal Trait is the same for regular iron deficiency. I can attest to several of the major problems, such as tachycardia (151 pulse rate at rest), palpatations (missing every third heartbeat for weeks at a time), and even Atrial Fibrillation, where my pulse was hanging out at 220 after laying down on the stretcher for an hour.
The problem with this genetic disorder is that one can't absorb or process enough iron. Taking vitamins and minerals does help, but not as much as folks without the disorder.
If you have ancestors from the common B-Thal Trait regions, you can get an easy blood test to check for the disorder. It is a good thing to know, and make sure your doctor knows about it.