The most common reason are stones on the tonsils.
What makes your breath awful are the little dots that you can see on your tonsils, and these stones release gas that has a nasty smell like Sulphur.
The things that get stuck in the tonsils are really small food particles, bacteria and a lump of mucus and they actually form the stone tonsils.
Once the cluster hardens, you will have problems not only with your breath, but as well as with pain in the tonsils when you swallow the food.
Sometimes these stones fall of by its own but in most of the cases, a surgical procedure is needed. However, there is also a third solution to this problem and that is to remove the stones from your tonsils by yourself.
If you have a “gut” see this video below how this is actually done