As with most things in using CSS, there are two different things that have to be done to satisfy two different sets of browsers. There is the code to center in modern, standards-compliant browsers, and then there is to code to center in IE.
For modern compliant browsers, step one is to make sure you are using a full and valid doctype at the top of your page. If so, you then apply auto left and right margins to the element you are trying to center. A key component of this, however, is that that element must have an explicit WIDTH. If not, it won't center. This has to do with how box widths are calculated when "auto" values are involved.
That's enough to get things working in FF, Opera, NS, and IE6 (provided you've got that doctype), but it doesn't work in earlier versions of IE, because they don't support auto margins.
For those browsers, you need to take advantage of another shortcoming they have; namely that they erroneously apply the text-align property to block level elements. So if you add text-align:center to the element Containing the thing you want centered (NOT to the centered element, itself), it will center in early IE versions, too.
Play with the values as needed to veritcal center image. Horizontally centering an image is the easy part. Please stay away from using tables for this.