Central heating and excess cleansing can lead to dry skin. Conversely, a humid climate, hormones and over cleansing can give rise to excessively greasy skin.
The most important thing is to keep the skin clean and unclogged. A good diet will help the general condition of the skin, but chocolate and chips will not make it any worse. Drinking plenty of water will also help.
Using a clay mask on a regular basis helps to draw the dirt from the pores. Be prepared for a period of more spots than usual for a few weeks, as the gunk rises to the surface.
Exfoliating removes some dead surface skin cells, which helps pores stay clear. There are physical exfoliaters - either ones with grains in them or rough sponges used with a cleanser (avoid the really rough ones, and don't try to sand your face off when you use them). There are also chemical exfoliaters - hydroxy, fruit acid, glycolic products - which loosen the dead skin cells. Stronger is not always better - a milder version that doesn't irritate the skin and can be applied daily should help more.
Don't fall into the trap of overdrying the skin. The skin can overreact to harsh cleansers and toners1 by producing even more oil to counteract the dryness...
There are many different brands of make-up on the market particularly suited to oily skin. Some will help control shine, some will help minimise the appearance of open pores, but the most important thing about any of them is that they should be removed completely at night2.
Tea tree oil-based products are very popular - the natural antiseptic properties help to kill the bacteria that causes spots.
http://www.bbc.co.uk/dna/h2g2/A581032