Though they sound scary, these things often do have legitimate uses. However, they also have illegitimate uses, so at some level you have to decide whether you trust the app developer. A good rule of thumb is that if an app has permissions that don't seem to be needed in order to do its job you should think a bit more carefully. If it has a lot of such permissions you should be very wary indeed. You may find this thread helpful:
http://androidforums.com/threads/an...ned-security-tips-and-avoiding-malware.36936/.
Of course sometimes apps have excessive permissions because the developer doesn't really understand them and finds it easier to ask for a lot of permissions than work out exactly which is needed. Personally I still think that's a bad sign, though perhaps for other reasons

.
The trick is understanding why certain permissions might be needed. So for example, if you want Facebook to be able to add events you are invited to to your calendar, it needs permission to modify the calendar. If you want to be able to save a picture from it, it needs to be able to write to your SD card. If you want to be able to add a picture to a post it needs to be able to read SD (if it's one you've already taken) or control the camera (if you want to take the picture as part of composing the post). So there are uses for those things that link to its functions. It probably wants to read your contacts so that it can suggest people you might want to connect to on FB (I don't have the app installed, but that's the sort of thing I'd expect it to do). But having said all of that, FB are not noted for respecting people's privacy, so if you are careful about that you may be better with some other app that gives access to FB without giving FB so much access to you (e.g. Tinfoil for Facebook, or just a web browser).
To give some examples that are often not understood: an app that is ad-supported will need internet access whether that is required for its main task or not. Flashlight apps will need camera access to control the LED flash. And media apps will usually need phone access so that they can tell when a call comes in and stop playing.