Smoking is worth almost £15 billion to the public purse because of the tax revenue and the savings from smokers' early deaths, according to a think tank's analysis.
The free market Institute of Economic Affairs (IEA) calculated the cost of smoking at £4.6 billion, including treating diseases, tidying up dropped cigarette butts and putting out house fires.
But tobacco duties brought in £9.5 billion a year and the Government saves £9.8 billion in pension, healthcare and other benefit payments because of the premature deaths of smokers.
The think tank accused politicians of "scapegoating" smokers, drinkers and the obese, claiming the £24.7 billion revenue from "sin taxes" far outweighed the costs they impose on the public finances.
"Taken together, Britain's public finances would be £22.8 billion worse off if there were no drinking, smoking or obesity," the IEA research paper said.
The report's co-author Christopher Snowdon, head of lifestyle economics at the IEA said: "We are constantly being told that people who choose to drink, smoke or eat too much are a burden on the UK taxpayer.
"This is one reason why we have seen such aggressive hikes in taxes on alcohol, smoking and very soon, a tax on sugar. But the justification for these taxes is based on an illusion.
"Smokers, drinkers and those who are obese actually provide a net benefit to the public finances, so vilifying them is futile in the quest to make savings for the NHS.
"A careful consideration of the evidence shows that the popular belief that costs will fall if people live healthier and for longer is false. While it's good that we now have longer life expectancies, policymakers must now address how we tackle the financial consequences of the ageing population rather than pointing the finger elsewhere."