This is just the basics so feel free to ask other questions as you need.
Basically blocks are VIews (as in the MVC View). So, in teh layout xml files when there is a block defined, teh block type is the path to the block code in magento which can either be core or your own extension code.
A quick example is this.
<block type="catalog/navigation" name="catalog.leftnav" template="catalog/navigation/left.phtml"/>
Taken from layout/catalog.xml
the block type “catalog/navigation” refers to the php file app/code/core/Mage/Catalog/Block/Navigation.php
The template catalog/navuigation/left.phtml will use this php file for the methods that are called in it.
Now, as for the layout of the xml files.
If we take this from catalog.xml again:
<block type="core/template" name="left.permanent.callout" template="callouts/left_col.phtml">
<block type="catalog/navigation" name="main_categories.leftnav" template="catalog/navigation/cats_left.phtml"/>
so, here we have two blocks. One is core/template and one is catalog/navigation.
Basically the catalog/navigation is a block that is called from with in the core/template one, or more correctly, it is a block that is referenced in the parent template (callouts/left_col.phtml). If you look in this file you will see
<?php echo $this->getChildHtml('main_categories.leftnav')?>
What is happening here is we are saying we want the block that we have given the name ‘main_categories.leftnav. I’m sure you’ve already spotted that the catalog.navigation block we have in catalog.xml above is called ‘main_categories.leftnav’. So, this is the template and block that is rendered to the browser.
Like I say, this is a very basic explanation of the layout xml files. Personally I think they are brilliant once you get into them
Hope this helps!