Hola 
gnzsoloyo , tu explicación me dejo mucho mas claro todo el asunto, evite lo del “circulo” que me comentabas asignando a "padre" como NULL en vez de 0 
Sin embargo ahora no me funciona la función (valga la redundancia) que me muestra, jerárquicamente, todas las categorías de noticias.  
Tabla categorías: 
  Función con el error. 
 Código PHP:
    function crearArbol($tabla,$id_field,$show_data,$link_field,$parent,$prefix){
    /*Armar query*/
    $sql='select * from '.$tabla.' where '.$link_field.'='.$parent;
    /*Asumiendo que se usa MySQL (se puede cambiar facilmente a otra db)*/
    $rs=@mysql_query($sql);
    if($rs){
        /*Recorrer todos las entradas */        
        while($arr=mysql_fetch_assoc($rs)){
        /* Imprimir campo a mostrar*/        
        echo($prefix.$arr[$show_data].'<br>');        
        /* imprimir arbol the "hijos" de este elemento*/
crearArbol($tabla,$id_field,$show_data,$link_field,$arr[$id_field],$prefix.$prefix);
        }
    }
}
 
//saco todas las categorias, ordenadas gerarquicamente
echo crearArbol('categorias','id','categoria','padre',0,'-'); 
    
  Huesos52, exactamente ese post fue el que me sirvió para realizar parte de este proyecto.  
Muchas gracias a ambos.