@Full plate: I'm more at home in chemistry than physics, but they are closely enough related. You got most of the things (and their order) right.
1: Your first step HAS to be to contact the professor directly. Contacting the department is either useless or the department head might just send around your email/mail to all profs anyway. For applying some few remarks: ALWAYS adress the professor by name in the first line and try to personalize your email, i.e. naming his research projects. Established professors get between 1-50 mass-email-applications for PhD or postdoc positions per week. Everything which doesn't address him directly will normaly get deleted without response immediately. If you are really interested in a research group and that prof does not reply to your email, spent the money and send him a paper version. Second tip: Title your email: "PhD position" not "Looking for a Phd position". The latter one might get deleted without opening. Since some professors send, however, emails to their colleagues announcing open positions, you might have a chance that he will actually start reading your email in the former case. When the first line is then "Dear Prof. xxxxx, I am very interested in participating in your research in xxxx" you are in the game.
2: Admission to the department: Once you got somebody interested, you have to gain admission to the department. For German students there are normally some criteria based on grades. Those differ from department to department and university to university. Some might allow everybody to start a PhD, others only if you have a degree better than x. Some make differences between university diplomas and engineering degrees. For foreigners the usual procedure is to write an application together with their diploma and grades. Sometimes you will be accepted directly, sometimes they will force you to take this or that class in the undergraduate curriculum, since your education is considered somewhat lacking. With a MSc in physics, you shouldn't have much problems. Your future professor will tell you how to proceed.
3: Fincances: PhD students in physics are normally paid, although not very much. You could expect ca. $1200-2000 per month (please keep in mind that there are no study fees for PhD students in Germany). There are three ways of funding: a) by university money available to your future boss, b) by industry/outside money your future boss got from some dark sources and c) from a personal grant to you. For a), and sometimes b), you are expected to do a teaching assistant (1-2 days per week during the term). You won't get paid extra for this, that's the job your salary is coming from. The advantage is, that you won't have to apply for this job. Your boss already has the money or there is no chance at all.
For c) there might be different programs such as DAAD where you can apply for funding. In this case you are, in most cases, not expected to help in teaching. Keep in mind though, that nearly ALL programs allow your boss to use you in teaching. He just does not have to. For an application you need in most cases an invitation of a professor and you have to hand in a research proposal. Again, finding a professor is thus the first step. Mention in your application that you are willing to apply for funding, but make sure in your negotations with your boss, that he has money to pay you anyway.