just like vannili said processed foods put alot of stuff in your body that bacteria love to eat when you sweat it out (cause BO is basically those bacteria excreting on your skin). BO comes out of armpits, genital area and chest, mainly the areolas. Those areas secrete not only sweat but fats and proteins that bacteria love to eat. Foods like meat and dairy are harder to digest in our bodies and thus sometimes they putrefy, and then that comes out in your sweat.
Bacteria will consume just about anything organic. Ever see a dead animal in the road? Your digestive tract is loaded with bacteria. So is your skin.
The degree of body odor depends a lot on how much a person perspires. If I am sedentary, I don't need a shower every day. However, I go to the gym almost every day and perspire heavily, so I need a shower and change of clothing daily. Don't assume that because you once were able to go three days without a shower it means you can go three days all the time.
Bad sinuses can cause a nasty odor. It smells like super bad breath, except the person has good oral hygene.