Nothing will remove the smell of smoke better than removing the smoke itself. Not a filter, but an exhaust fan. Buy a really good kitchen hood, hang it over your desk chair and pipe the exhaust duct outside.
Baring that, the next step is filtration. A HEPA filter will remove the larger particles, and a secondary charcoal filter will remove some of the odor. Change the filters frequently and wash the air path of the machine.
Third tier is cover-up with another, less offensive odor. Anything that you spray, light, burn or plug into an outlet is usually nothing more than a mask. Mostly ineffective insofar as people who hate tobacco smoke will still be able to smell it, and a lot of people (myself included) can't stand the 24/7 perfumes and odors these things emit. Stuff like febreze can be more effective, but it carries some potentially serious health risks. Research has shown it to be an endocrine disruptor.
Last and certainly not least are ozone generators. These things work, and work well for removing odors, especially when combined with the first two choices of exhaust and filtration. Be warned, once again, that there are real, potential health risks involved with ozone. Ozone will damage the lungs if exposure concentration is strong enough or long enough. read up on it before you decide if ozone is safe for you.