The OS X Internet Connection Sharing utility works very similarly to the one you have in XP, except that it seems to be easier to use and set up.
I personally resist using ICS for anything. In my experience it's a pain to keep running, it requires one computer to be on for its own AND the sharing computer's Internet connection, and it typically involves some sort of unpleasant configuration compromise. That compromise, in this case, is the potential for problems with the OS X firewall. For all these reasons, I always recommend an inexpensive router instead of anything but a dedicated Linux box running a really good router/firewall package.
Now as far as the firewall goes, you MAY be able to just go with its normal settings; surfing on the XP machine connected through the iMac should be fine. Other protocols may give you problems, though-I don't know how POP mail protocols go through the OS X firewall, for example.
You should also be able to share a printer through the iMac and AirPort Express from the XP laptop. But if you're going to get an AirPort Express, why use ICS? The AirPort Express IS a router, after all. Just plug the Express into the cable modem, plug the cable from the iMac into the LAN port and configure the wireless so your XP laptop can see it and you're golden.
The only real wireless printing (or network printing in general) problem you're likely to run into is that some USB-only printers just don't play nice on networks, and NO all-in-one does much more than print on a network.