jQueryTools plugin custom effect for caching ctabs
From a once over : 


Whether the content is loaded or not, you call panes_cont.children().hide();, you might as well centralize that 1 call 
There is too much going on in the creation of new_pane, it ought to be split up.
lowerCamelCasing is good for you, also write out things. cont keeps reminding me of continue whereas you probably mean content
I prefer the line of comment on top of the function
There is no need to check length &gt; 0, you can simply check for length
As Bill Barry pointed out, caching the loader image is more efficient
Most recent js standards suggest to put strings in single quotes, whichever way you go, you should be consistent for easy reading.


All the above together gives this:

//check if pane already loaded, if so, display it, otherwise send ajax
$.tools.tabs.addEffect("ajax_cache", function(tabIndex, done)
{
  var allPanes    = this.getPanes().eq(0).hide(),
      targetPane  = allPanes.find("#tabindex_"+tabIndex);

  if(targetPane.length)
  {
    targetPane.show();
  } 
  else 
  {
    var loaderImage = allPanes.append('&lt;img id="tab_loading" src="/graphics/loading.gif"/&gt;'),
        newPane = $('&lt;div&gt;').attr('id', 'tabindex_'+tabIndex),
        URL = this.getTabs().eq(tabIndex).attr('href');

    newPane.load(URL, function(){
      loaderImage.remove();
      allPanes.append(newPane.show());
    });
  }
  done.call();
});