Ideally you want something a little longer than the insulin syringe style needles usually used for IVing, otherwise you run the risk of a subcutaneous shot, which has a much higher risk of causing an abscess (and has a lower bioavailability too). I'd go for something longer than 1/2 an inch, 1 inch is ideal IMO and is standard in hospitals, or 3/4 inch.. depends how skinny you are really.
As for gauge, 25G or 23G is pretty standard in my experience. In hospitals 20G is often used but this is bigger and more painful, and not really necessary IMO..
Barrel size depends on what you are IMing and how much liquid you need. You don't want to IM more than 5mls maximum in one shot, so 2ml sounds fine..
Make sure you know about appropriate sites and technique (in the link nAON provided) and remember that IMing something carries a risk of abscesses, and it is vital to be as sterile as possible. I would not IM anything without using a micron filter, sterile water etc and I wouldn't IM street drugs..