El code tiene vulnerabilidades, ponele un mysql_real_escape_string, y para lo de los iconos, podrias utilizar un funciones.php (si es que así se llama donde están todas las funciones xD), que reemplaze el nombre de la categoria por la imagen del icono, ej:
funtion cat_ico($texto) {
$texto = str_replace("general", "<img src='ico_gen.gif' border='0'>", $texto);
$texto = str_replace("noticias", "<img src='ico_not.gif' border='0'>", $texto);
return $texto
}
Y despues para usarlo sería así:
Ejemplo:
include('funciones.php'); //incluimos el funciones.php para poder usar la funcion que creamos, osea cat_ico
$select = mysql_query("SELECT * FROM mensajes WHERE categoria = '".mysql_real_escape_string($_GET['cat'])."' ");//Decimos que categoria es = a la ID enviada
while ($row = mysql_fetch_array($select)) { //Hacemos un bucle para que se muestren las noticias
echo cat_ico($row['categoria']); //con el hecho se mostraría la categoria, pero como pude cat_ico lo reemplazaría por la imagen
echo "<br> $row[titulo] <br> $row[mensaje]";
Bueno, eso sería en forma resumida como se me ocurre, si no la otra es que le agregues una columna mas a la tabla que se llame cat_ico, y llamas esa imagen, es lo que se me ocurre.