Generally speaking, it is always best to have a
local SIM card. That way you can avoid the absurd roaming charges. The exception is 3, and I'm going to make another endorsement here - since switching from rip-off Vodafone my roaming bills have fallen by about 75%

. This uses the 'home' tariff on wholly-owned networks (e.g. Italy, Austria, HK, etc), so if you mainly/only travel to these countries you probably don't need a local card.