Realmente es mas simple de lo que parece:
Supongo que tienes conocimientos basicos...
Yo lo hago de la siguiente manera:
//pagina que procesa los mensajes:
$mensaje = $_POST
//elimina las etiquetas html (`para evitar posible hackeo')
$mensaje=htmlentities($mensaje, ENT_QUOTES);
//ahora esto ironicamente significa que cambia las etiquetas que tu le das permiso a usaer al usuario por etiquetas html
$mensaje = str_replace("[b]","[b]", $mensaje);
$mensaje = str_replace("[/b]","[/b]", $mensaje);
$mensaje = str_replace("[i]","[i]", $mensaje);
$mensaje = str_replace("[/i]","[/i]", $mensaje);
por ejemplo: aqui mismo en el foro se utilizan estas mismas etiquetas , cuando pones [ b ], se convierte en negrita...