One has to keep two subjects separately here:
- Dialling properly to make sure the call goes through.
- How much the call will cost you.
While the subject of call cost would possibly be an interesting one (though these days less than 2-3 years ago) somethink different is important to make sure you will be dialling the correct number.
In case the person you are calling has provided their number properly in international format, i.e. +yyyxxxxx, you won't face a problem. But in case you see a phone number written in national format (i.e. without a country code) and you found out the country code and want to build the international format youself, be careful.
Many countries (my experience is from Europa mostly) use geographic area codes for landlines and kind of "virtual" area codes for mobiles and you can dial from landline to landline within the same area code without having to dial the area code.
The interesting difference between some countries comes with the leading zero in front of the area code. In some countries, you have to omit it, in others not.
Example from Germany:
Landline in Berlin: 030 1234546
International format would be +49 30 123456 (you drop the 0)
Example from Italy:
Landline in Bolzano: 0471 123456
International format would be +39 0471 123456 (you keep the 0)
The rule of thumb is: More often than not, you drop the 0. Just in case you find out it doesn't work, just insert it.