Block - Adding

To add a custom block to your site, go to admin/structure/block/add.  From here you can add all the information that you need to create a block.

This block page may differ from yours.  The body field is more elaborate thanks to a WYSIWYG editor.

Block Title - This is what is displayed to the user
Block Description - This is a brief description of the block is and this information is not seen by the user but is visible on the admin/structure/block page.
Block Body - This is the heart of the block. This where you can can your custom php code and verbiage.
Region Settings - This is where you determine where in regards to your theme the block will be displayed.  Many developers, like yourself, often leave this set to none.  Blocks can be more easily administered (where they show up) on the blocks admin page admin/structure/block.

Under the visbility settings there is more block customization.

Pages - This determines where your block will be displayed
All pages except those listed - This is a negative filter.  The block will appear on all pages except those listed in the box below it.  If you enter in a page named, pizza, this block will not appear on the pizza page.

This is a negative filter.  This block will only appear on the front/root, garycoleman, and pizza pages

Only the listed pages - This is a positive filter.  The block will not appear on all the pages, but it will only appear on the pages entered.
Pages on which this PHP code returns TRUE - This is a challenge.  If you are familar with Drupal and PHP, go for it.  If not, I would highly recommend avoiding this selection.

Instead of limiting the block by pages, you can limit the block's appearance by content type.  This can be accomplished in the Content Types tab under pages.  This is a positive filter.  The content types that you select will only display the block.

If pages and content type limiting wasn't enough for you, you can limit by roles.  This is useful if you only want one group of users to see the block.  This is also a positive filter.

Users settings are a pain and can really alter the feel and flow of your site.  This setting lets the user customize the block.  When you give a user the ability to determin the visibility of a block it can be a disaster or incredible.  It will never be an average experience.