From someone being called a lot by recruiters...
General outpt Internal medicine will bring 160-180 private practice. Generally outpt docs make a salary based on how busy they are.
Hospitalists make 160 to 220 with most jobs between 190-220. Jobs are split between salary and production based. Salaried positions are less desirable to some because when you get busy in the winter, you don't get any compensation. Production based often means that you will frequently be busy, but your pay will reflect how hard you work. The most common complaint about production based pay is that there is financial incentive to overload yourself with pts and this can result in poor pt care and lots of consults. However, good hospitalilsts who can handle 25-30 pts and don't mind to live at the hospital can make 300-400k.
Subspecialists make anywhere between 180-600k with some very high end specialties in lucrative, extremely busy practices making in the millions. Doctors who make million+ salaries are over worked, over extended, and probably many of them are doing far too many procedures to be safe. But there are some superstars who hold it together well.
Just the general rule of thumb is don't sign a contract that is less than you're worth and at the same time if someone promises the world, think twice about that too.