A better method of doing this is to simply re-declare the observer's definition in a config.xml file.
For example, I needed to disable the enterprise_persistent_cart observer which was declared on event controller_action_layout_generate_blocks_after by module Enterprise_Persistent.
The declaration in Enterprise_Persistent's config.xml file is such
<frontend>
<events>
<controller_action_layout_generate_blocks_after>
<observers>
<enterprise_persistent_cart>
<class>enterprise_persistent/observer</class>
<method>removeCartLink</method>
</enterprise_persistent_cart>
</observers>
</controller_action_layout_generate_blocks_after>
So I created a module, and in my module's config.xml, I did the following:
<frontend>
<events>
<controller_action_layout_generate_blocks_after>
<observers>
<enterprise_persistent_cart>
<type>disabled</type>
</enterprise_persistent_cart>
</observers>
</controller_action_layout_generate_blocks_after>
I also made my module depend on the Enterprise_Persistent module. This is necessary to make sure my module's config.xml is processed AFTER the Enterprise_Persistent module's config.xml. I did this by doing the following in my module's app/etc/modules My_Module.xml module declaration file
<config>
<modules>
<Atlex_AddCartLinkToHeader>
<active>true</active>
<codePool>local</codePool>
<depends>
<Enterprise_Persistent/>
</depends>
</Atlex_AddCartLinkToHeader>
</modules>
</config>
For each event, there can only be one observer action declared for a given observer name. Therefore, as long as my module's config.xml is processed after the Enterprise_Persistent module's config.xml file, my observer declaration for enterprise_persistent_cart will be the observer action which is excuted.
The <type> disabled </type> node will disable the observer from firing. If you wanted to override the observer to execute your own method, then you would simply replace the <type> node with your observer's <class> and <method> nodes.
This allows you to override/disable observers without overriding core classes. It's more extendable for future developers.