It is the culture of the league. As previously mentioned - there are different types of players. offense and defense yeah but also different playing styles for each position. some guys are small and fast and make plays, others and big not so fast and stop plays. it has been that way since the beginning and culture doesnt change fast. but watch a euro game or highlights, they dont fight and they hardly check.
And you pretty much provided the reasoning behind why more isnt done to stop it - hockey has less fans than pretty much all other major sports here in the US. In the eyes of a marketing manager fighting = drama = more attention = $. im not saying that i agree with it or that its right but i like it!