First question. Print where?
1) If you are printing from home use the same application you are working in.
2) To print photos. The first option is to print from the original jpg extracted from your camera. If you are shooting in raw, do the processing you need and generate your jpg, the less compression you put, the less the artifacts will show. That also depends on the photo.
In some cases, let's say for a banner made in photoshop you can choose between jpg with almost no compression, TIFF or a flat PSD copy.
3) From there you probably want to stick with pdf. Embed your color profile and use a PDF X family format (PDF-X1a, PDF-X3) This include laser prints for a print shop, a plotter for a banner or a commercial print house for a magazine.
Image format is not the same as file format.
An image format is commonly a bitmap or raster-based image, and a file format is one that can contain other information, like text or vectors.
Your working files (Indd, PSD, CDR, AI) are file formats.
Also, there are some generic file formats that can include this different type of objects inside. The main one is PDF. Pdf is a newer version of the old eps.
Some notes on your list of image formats
BMP. Just a fat image format. Its only used in some applications prior to an internal compilation. It is the non-compression at all file format. Do not use for print.
JPG2000. Not much support in web applications. The truth is I have NEVER ever used it for printing.
PNG. the best raster image format for web graphs, logos, plain images. It could work to print in some digital printers.
PSD. Do not send a working file. No layers transparencies smart anything. Send just a flattened image. Use It.
JPG. Some people do not use this format for printing. If you really know what are you doing you can safely use it for digital prints or even commercial print. I use it very often... Because I really know what I am doing n_n
TIFF. A safe bet. Robust and can have a decent compression. Use it but not with jpg compression inside.
Second question. Do you know how to send a file for prtint?
I will not add much here... because there are a lot of topics out of the scope of the question.
A good quality print is FAR from the output file format. You can use ANY suitable file format. If you are doing things right you will have a good print. If not, no file format will save you.