I would like to add my option as opposed to benmarks' answer.
My approach is to use the append action:
<block type="core/template" name="my_block" template="my/block.phtml" />
<reference name="head">
<action method="append" ifconfig="myblock/general/enabled"><block>my_block</block></action>
</reference>
You are correct that the type defines the block class that is used to render the display of your associated template file.
The reason why using 'page/html_header' is working, is because it is a child class of the base magento template block Mage_Core_Block_Template
class Mage_Page_Block_Html_Header extends Mage_Core_Block_Template
Since your template file is not calling methods not in the class Mage_Page_Block_Html_Header (or parents thereof), it will render fine, as ultimately you are dealing with the base core/template class which has all the needed base methods to allow a template to load, and render (for example protected function _toHtml())
You could just as well (and should have) used 'core/template' as your type, since you template required no special functionality to render.
Let say, for exmaple your template file had a call to a method to determine the answer to life, the universe, and everything :
<?php echo $this->whatIsTheAnswer() ?>
then your rendering of the template would have failed.
$this is the type defined in the block definition, thus
Mage_Page_Block_Html_Header
in your case/example.
Thus type = the class that contains your methods, as called from your template file. ($this in the template)
If you have no custom calls/methods in your template file, then core/template will suffice.
If you need custom methods, then you need to create that block, in your custom module, and use it as the type, but your custom block must ultimately lead to 'Mage_Core_Block_Template' via inheritance.
I hope that helps you understand it a bit more, if not, ask away and I will try and explain more.
Best Answer
Yes you can but you cannot check a specific value using layout. So for example, you can do the following that checks to make sure the contacts page is enabled;
Basically the ifconfig checks for an equivalent of true or false. If you want to check a specific value then you would need to use an observer Magento 2: Remove block depending on a config setting