This is something I often get asked and without a detailed knowledge of the Salesforce platform, it can be a difficult thing to work out.

This article provides some great examples of when you need to get a developer involved to make changes to your Salesforce and when you don't. 

No custom Salesforce code required

  1. Blocking bad data.
  2. Integrating with AppExchange applications.
  3. Using buttons for URL hacking.
  4. Updating and creating records automatically.
  5. Building wizards and multipage prompts through flows.

Custom Salesforce code required -- for now

  1. Complex record updates.
  2. Branded experiences.
  3. Web to case.
  4. applications.
  5. Non-AppExchange integration.