Public key cryptography is for when there are several distinct entites, i.e. he who decrypts is not the same person than he who encrypts; similarly, when we want people to be able to verify signatures without granting them the technical power to produce signatures of their own.
Public key cryptography is not inherently "more secure" or "less secure" than symmetric key cryptography; public key cryptography does things that symmetric key cryptography cannot do (the "entity separation"), but it does so at a hefty price (more maths, more code, more complexity, bigger objects, more CPU). Moreover, there are things which symmetric cryptography does much better than public key cryptography, in particular managing bulk data (RSA encryption is good for 100 bytes, not for 100 gigabytes).