I'm not certain of the properties of BMP, but I do know it is an uncompressed format. I don't know if it is 8 or 16 bit color though.
TIFF (tagged image file format) is a high quality, print spec file format that can go to high bit depths, has internal compression for making file sizes smaller, and supports layers and alpha channels for transparency.
PNG (portable network graphic) is a relatively racing file format that was born out of the need for higher quality web images that support transparency. It can be 8 bit for lower quality/file size, but is more typically 32 bit (8 bit per red, green, blue and alpha channel) for higher quality images with transparency. The higher the bit size, the more colors in the image, the smoother tonal changes.
GIF(graphic interchange format) - pronounced GIFF and not JIFF as some people annoyingly do - is an old old web format that is only 8 bit, which provides for 128 colors. As the name suggests, it is best suited to graphic images: logos, solid colors, simple designs etc, as there will be few tonal changes. It cannot do blends well due to the limited color palette. It can support transparency, albeit in a very crude fashion. You designate on color in the palette to be the alpha color and that is hidden from display. There fore you get very rough aliased edges on curves with transparency. GIF also supports animation, again very crudely. There is no tweeting like in flash for example, more frame by frame animation. GIF has seen somewhat of a renaissance recently with increased web bandwidth allowing for bigger and more colorful animations (video clips for example) than it was probably designed for. Still very low file size due to the limited color palette, and every browser ever created supports this most basic of web file formats.
JPEG (joint photographic experts group) is a 24 bit file format used commonly in web and video and just about everywhere. It does not support transparency or animation, but does a very good job of anylize get the image and discarding colors it doesn't need but keeping the integrity of the image. This provides for quite small file sizes that keep the image looking as it should.
A word about compression. JPG is a lossy format, it discards colors when the file is created, and you can never get them back. It suffers poorly from generation loss. That is if you create an image in Photoshop then save out a JPG, then change that image somehow and save out another JPG the second generation file will look worse than the previous version. Depending on the level of compression used you can get away with a couple of generations of loss with little to no effect, or you could get an image looking like a dogs dinner very easily.
GIF on the other hand is supposedly and theoretically a lossless compression scheme, because you can save out the same GIF over and over with no loss. However, you do have to discard a great deal of color to get to a GIF palette in the first place (16,000 to 128) so I always felt lossless was a bit misleading.
Hope this helps, if you have any questions of I left something out or misstated something please ask or correct me.