The cause of fireplace odor is usually humidity or downdraft in your fireplace chimney that is bringing the aroma out of the ash and creosote and backing it up into your home. In order to stop it at the source you can plug the fireplace chimney with a chimney balloon to stop the flow of air into your home through the fireplace.
Any remaining smokey odor can be neutralized with a fireplace deodorizer, or you can take a wide brimmed bowl (like a salad bowl) and put some vinegar in it and set this in your firebox for a few days. This will neutralize any leftover odor, but you need to stop the air entry first otherwise the deodorizer or vinegar wont work.
Having your chimney swept in the Spring, before Summer humidity begins to infiltrate your chimney will eliminate the creosote in the flue, smoke chamber and fireplace or stove so the sulfuric acid, which forms when the humidity reacts with the creosote, cannot form and cause the smell in the first place. Also, keep you damper shut whenever you are not using your fireplace, since in the Winter warm air will rise through it and cost you money, and in the Summer cool air will sink think through it and bring contaminants such as soot, ash and sulfuric acid into your home.
Finally, by having your chimney swept by a Certified Chimney Sweep in the Spring, you not only eliminate the source of that fireplace odor, you also ensure your chimney doesn't have any potentially costly water leaks, unsafe conditions such as gaps in the flue liner, or mis-aligned flue tiles, and you will be able to use your chimney as soon as it gets cool in the Autumn.