The issue is that you are removing the "</strong>" tag above in the str_replace, so the preg_replace() won't work because it depends on both the open and close tags to be found before it removes them.
You could try moving the str_replace() to the end like:
<?php
function convertString($string) {
$retStr = $string;
$retStr = preg_replace("/\<a(.*)\>(.*)\<\/a\>/iU", "$2", $retStr);
$retStr = preg_replace("/\<span(.*)\>(.*)\<\/span\>/iU", "$2", $retStr);
$retStr = preg_replace("/\<u(.*)\>(.*)\<\/u\>/iU", "$2", $retStr);
$retStr = preg_replace("/\<h1(.*)\>(.*)\<\/h1\>/iU", "$2", $retStr);
$retStr = preg_replace("/\<strong(.*)\>(.*)\<\/strong\>/iU", "$2", $retStr);
$retStr = preg_replace("/<img[^>]+\>/i", " ", $retStr);
$retStr = preg_replace("/<h1[^>]+\>/i", " ", $retStr);
$retStr = preg_replace("/<h2[^>]+\>/i", " ", $retStr);
$retStr = preg_replace("/<h3[^>]+\>/i", " ", $retStr);
$retStr = preg_replace("/<p[^>]+\>/i", " ", $retStr);
$retStr = str_replace(array("<br />","<br>","<p>","</p>","<h1>","</h1>","<h2>","</h2>","<blockquote>","</blockquote>","<strong>","</strong>","<em>","</em>","<u>","</u>"," "), "", $retStr);
return $retStr;
}
?>
That may work, but I'd suggest using the built in php function strip_tags() instead of this one.