There are a number of free and commercial code obfuscators around. However, even the best of them won't completely protect your code; they are based on the principle that the effort required to follow the obfuscated code is greater than the value derived from doing so.
I tried out four or five of them last year and was best impressed by Dash-O, but it is expensive.
Anything can be decompiled into something. The only thing you can do is make it harder, so the economic cost of decompiling and understanding the the stuff is greater than the economic benefit of doing so.
This usually (almost always) means you don't need to do anything at all.
90%+ of people wanting to "protect" their code from decompilation do so purely out of vanity or other non-reasons. The few who do have a reason usually know that any "protection" can be easily overcome and resort to different means like ASP architectures where the compiled code is never made available to the user at all.