Difference in form when first loaded and submitted
If all you want to know is whether the form is being loaded before or after a submit while debugging, then look at the array in $form_state['input']. If it is an empty array, then it is being loaded for the first time (before a submit). If it has elements then the form is being loaded after a submit.

If you want to see if field values have been changed in a submit, then how you do it depends on where or why you need to check. If debugging, then compare $form_state['input'][FIELD] with $form[FIELD]['#default_value']

You can also add your own functions as submit or validate handlers to the form. After the form is submitted, your function will be called, and you can compare the changed values in $form_state['values'][FIELD] (note: use values here, not input) to the original values in $form[FIELD]['#default_value']. 

You add your submit/validate handler by implementing hook_form_FORMID_alter()for the form you are debugging, and adding the names of your functions to the end of the $form['#submit'] and $form['#validate'] arrays respectively. Remember to clear caches.

function my_module_form_other_module_form_alter(&amp;$form, &amp;$form_state) {
  $form['#submit'][] = 'my_module_custom_submit';
  $form['#validate'][] = 'my_module_custom_validate';
}

function my_module_custom_submit($form, &amp;$form_state) {
  $original_field_x_value = $form['field_x']['#default_value'];
  $submitted_field_x_value = $form_state['values']['field_x'];
  if ($submitted_field_x_value != $original_field_x_value) {
    do_something();
  }
}

function my_module_custom_validate($form, &amp;$form_state) {
  do_something();
}