It should be perfectly fine to use an image's alt text as the content text of a heading.
<h1><img src="logo" alt="Acme Garage Homepage"></h1> (on the home page, because on inner pages usually other text is more appropriate as the h1 and this should fall back to a div or a p like in the example above)
The alt text is real content and if it's inside a heading tag, then it's now a heading as well.
The only reason I prefer the image-replacement method mentioned above is because browsers suck at showing alt text if the image, for whatever reason, doesn't load. Users with screen readers or without CSS, and search spiders, they'll all still get that text, but anyone sighted using any (non-Gecko) graphical browser may not get any alt text if the image doesn't appear.
Gecko is the only engine to get it right.
Opera shows the text but lets the unloaded image dimensions cut the text off. Or, that was Opera under Presto. Under Blink it probably does what Blink does: not show any text unless the image dimensions were already big enough to show ALL the text. Bleh.
In Gecko (Firefox/Iceweasel/SeaMonkey/otherWeirdAnimals) images are inline elements and if the file they call to replace them with never comes, it remains an inline element and has text inside. The text flows like any other inline element and is always visible.