Here is a method that allows you to predefine the html and css for each "icon" mouse-over.
Live version: http://jsfiddle.net/gSAjV/2240/
var content1 = '<p>This is some html that will fill the content window</p>';
var content2 = '<p>This is more html that will fill the content window</p>';
var content3 = '<p>This is other html that will fill the content window</p>';
var content4 = '<p>This is even more html that will fill the content window</p>';
$('#icon1').mouseover(function(){
$('#content').html(content1);
$('#content').css( "background-color", "red" );
});
$('#icon2').mouseover(function(){
$('#content').html(content2);
$('#content').css( "background-color", "orange" );
});
$('#icon3').mouseover(function(){
$('#content').html(content3);
$('#content').css( "background-color", "yellow" );
});
$('#icon4').mouseover(function(){
$('#content').html(content4);
$('#content').css( "background-color", "green" );
});
This works, but to my knowledge it is far more difficult to add clean transitions when you are changing the div content. If you want to have fades or any other "A"-over-"B" type transitions, then it may be better to have all of your content preloaded on multiple, layered divs as you suggested.
It is also possible to make transitions using only two divs. One div for holding your current content and one that loads the new content on mouseover and once it is loaded, fades (transitions) in.