most people using computers know the word "hacking" , some find the term cool, some dont like the "hackers". on the other hand very few people know something about reverse engineering.
if you want to expand your horizon, if you want to learn deepest secrets about the system you are working on, if you want an exciting area to study computer programming, reverse engineering is the way to go. reverse engineers study the system to the deepest level, and find every secret that is built into the system. then maybe they build some tools to operate on these "secrets".
hackers come into the scene and use these tools, the tools that reverse engineers built and attack systems, and they get famious.
one last thing, dont confuse some people who write key generators or cracks or patches to eliminate shareware protection schemas. they are just school kids who want to become pirates of the computer world.
i am a big fan of Mark Russinovich! explore some of his work here
http://www.sysinternals.com and check out his blog. you will have an idea about reverse engineering