Will is a great movie star, but not a great actor. His movies do well because people of all kinds like his charm and charisma. Why do you think he never plays a bad guy and never takes a supporting role?
While he was on Fresh Prince he said he and his manager did some research into what it would take to be the biggest movie star. He figured out 2 things; sci-fi movies do WORK at the box office (Independence Day, Men in Black, I Am Legend, Hancock), but every once in a while throw in a inspirational story every once in a while with him as the lead (Bagger Vance, Ali, The Pursuit of Happyness, Seven Pounds). Dude's been micromanaging his career for over 20 years.
Every once in a while he breaks from this formula (Hitch, Bad Boys) but that's generally been his strategy.