This is quite a question, and somewhat complex as well, specially if you come from an english background.
I'll try to do my best:
In English, you use the word "for" for several uses in english. In Spanish, we separate the several meanings in "por" and "para". Aditionally, both can cover the words "to" and "by".
Let's see an example:
"I made this sculpture for you", which can be translated equally into
"Hice ésta escultura por tí"
or
"Hice ésta escultura para tí"
You need to be very careful about the context of the sentence. In the first meaning, you're indicating that the other person is the REASON behind you talking the photo. That person might or might not be the one recieving it, but ultimately is the reason that drove you to make the sculpture.
In the second meaning, you're expressing that you want that person to take the sculpture, so basically that person is the one you want to receive it, to possess it.
"Por" indicates cause, origin, motivation; "Para" indicates recipient, finality.
Also, "por" can be used to indicate an estimation (of time), while "para" is regularly used to express an exact time or date. (In this case, it is used as the word"by", as in "I'll be home by noon", which can be translated accurately in "Estaré en casa para el mediodía", even if it is not the exact time you're expressing a certain hour of the day.)
You need to be careful here, analyze the context, and use the word you think it's correct using other similar sentences as examples.
If you have a good understanding of Spanish, I suggest you to read this article:
http://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&sqi=2&ved=0CB8QFjAA&url=http%3A%2F%2Fwww.pyc-revista.com%2FnumAnt%2Fnum4%2F15_gramatica.pdf&ei=_21bUPemKMafqQHmvoG4CQ&usg=AFQjCNG25DkdqrMnmj6Q7nCVBVRYPRXkJQ