<p>I'm wondering about instances when it makes sent to use #define and #if statements. I've known about it for a while, but never incorporated it into my way of coding. How exactly does this affect the compilation?</p>

<blockquote>
  <p>Is #define the only thing that determines if the code is included when compiled? If I have #define DEBUGme as a custom symbol, the only way to exclude it from compile is to remove this #define statement?</p>
</blockquote>

Well, defines are used often for compile time constants and macros.  This can make your code a bit faster as there are really no function calls, the output values of the macros are determined at compile time.  The #if's are very useful.  The most simple example that I can think of is checking for a debug build to add in some extra logging or messaging, maybe even some debugging functions.  You can also check different environment variables this way.
Others with more C/C++ experience can add more I am sure.