From Canon's website for the XSi:-

(1) Large/Fine : Approx. 4.3MB (4272 x 2848 pixels)
(2) Large/Normal : Approx. 2.2MB (4272 x 2848 pixels)
(3) Medium/Fine : Approx. 2.5MB (3088 x 2056 pixels)
(4) Medium/Normal: Approx. 1.3MB (3088 x 2056 pixels)
(5) Small/Fine : Approx. 1.6MB (2256 x 1504 pixels)
(6) Small/Normal : Approx. 0.8MB (2256 x 1504 pixels)
(7) RAW : Approx. 15.3 MB (4272 x 2848 pixels)
Exact file sizes depend on the subject, ISO speed, Picture Style, etc.

So it all depends what format you take your pictures in. I use RAW + Large/Fine for everything, so I would use around 20mb for each image. Divide that into 4000mb and you get around 200 images. Actually a bit less as a 4gb card doesn't give you 4gb. I use 8gb cards in my 5D and I've never had a problem. I always have with me the one in use plus an empty spare. I also always have the battery in the camera plus a fully charged spare.

The speed of card matters if you're going to use the "spray and pray" system. More of an issue for you as your maximum picture rate is a bit higher than mine. I rarely take anything other than single shots and I find the Adata cards I use to be perfectly adequate, but it is possible for the camera to generate data faster than the card can accept it, or faster than the electronics in the camera can write it. Your camera's Digic III processor is a bit faster than my Digic II.

I know people who restrict the resolution to get more pictures. IMO totally pointless - they might as well just take out a compact to begin with. Murphy's Law states than all your images will be crap, except the ones you took at reduced quality!