Obesity 'causes more cases of some cancers than smoking'