Both "师傅 (shī fu)" and "师父 (shī fu)" are pronounced "shī fu" in Chinese, but they are different in writing and meaning as well.
Here is the major difference in general:
"师父 (shī fu)" is used to address a respectable teacher or mentor.
"师傅 (shī fu)" is used to address someone who teaches skills in the fields of industry, commerce, drama, art or medical.
"师傅 (shī fu)" is a very common and polite Chinese term usually used to address the workers from working class, such as taxi-drivers, construction workers, plumbers, maintainers, dustmen, doormen, cooks, barbers, elderly workers, or anyone (mostly the elder people) in the street, who you want to ask for help but whose name is unknown. However, there are exceptions as well. For example, it's inadvisable to address a doctor or a policeman "师傅 (shī fu)". It can be used to address men as well as women, but more suitable for men. If you know the person's family name (Zhang or Wang), you can address him/her "张师傅 (zhāng shī fu)" or "王师傅 (wáng shī fu)".
"师父 (shī fu)" is usually used to address a monk or nun, and a martial arts instructor. In the Chinese classic novel 西游记 (Journey to the West), you may find that Money King always address the Monk Tang "师父 (shī fu)". The word "师父 (shī fu)" might make you recall the movie 'Kung Fu Panda', where Po called his teacher "Master". Here, "Master" in Chinese should be "师父 (shī fu)" rather than "师傅 (shī fu)".
Traditionally, Chinese people respect their teachers as their own parents, and that is the reason why they say "一日为师终生为父" (yī rì wéi shī zhōng shēng wéi fù. He who teaches me for one day is my father for life).
The basic meaning of these two words is the same, which are the respectful titles for the person who teach knowledge or skills to others. Compared with "师傅 (shī fu)", "师父 (shī fu)" covers a wider range that includes the meaning of the former. But in modern Chinese, using either of them on the same person won't cause any misunderstanding in most situations.
Please visit Chinlingo for Chinese learning.