The hipster trend caused guys to be rocking shirts 1-2 sizes too small. I've been a lot of different weights and I generally wore in the past:
150-170 :M
170-200: L
>200: XL
If you are tall but don't weigh a lot, some brands sell "M tall" and "L tall" size.