Yeah, I use Dotfuscator. Some of the obfuscators are garbage, but Dotfuscator seems to do a pretty good job. At least, I tried to crack it, and decided I MIGHT be able to do it, but I could tell it would take a lot more work than I felt like doing, or if there's some easy way to do it, it takes someone who knows a lot more about Microsoft stuff than I to manage it. And that's a good enough protection level for my software.
There's also stuff that compiles your .NET code into an executable file, much like when you compile C++. They say that thing gives you even more security, but I haven't tried it myself.