The EULA and reverse engineering
In the US, it is completely legal to look at the raw bytes of any program you purchase and, indeed, convert them to assembly or some other form for human readability (a recent link by zebbedi goes into this a little). In fact, Microsoft found this out early on when it tried to sue a worker (for Symantec? if my memory serves me) who disassembled some of the GDI for font enhancements to Windows. Microsoft's most pressing legal concern in its recent anti-trust came from the realization by disassemblers that some software products by MS not related to the OS had unfairly used undocumented APIs to provide capabilities in their products that others would have a much more difficult time implementing (see Undocumented Windows by Schumann et al. for a brief intro into these issues).
It is not only legal, but often ethical to do this disassembly. I wouldn't have Nebbett's Native API Reference without it, and some of my product's capabilities would not exist without this knowledge (even with ring0 code, the OS internals would still need to be disassembled). This is one of the strongest reasons for RE in the professional world, to extend capabilities of third-party products (like OSes). Of course, crackers will continue to use disassembly in ways that are not ethical, but their actions are illegal for other reasons not related to RE, and the legal options of companies so compromised are not taken away. However, for sensitive technologies where enforcement of intellectual rights is imperative, the options presented earlier in this thread (polymorphic and encrypted code) do assist in the protection.