Apart from Familiarity and consistency, it depends on a couple of other factors. So, first of all, make sure you're consistent with the platform guidelines and the rest of your design, this makes your job easier. Your users will expect the button where you tell them to expect it.
Second, here are a few questions you should ask -
- What is the length of the form?
- Is the user supposed to fill the entire form or can they fill a
few fields and skip (example an edit form).
- Is the form divided into the parts? (i.e. are there next and previous
buttons?)
If it's a long, empty form, you probably want to put it at the bottom, a good idea is to make the form stick/pop once the user reaches the final field. You can also try something like amazon's checkout page where the button both at the bottom and at the top.
If the form is already filled or can be skipped, then the submit button should be somewhere at the top so the user won't have to scroll to the bottom to find the button.
If there are Next and previous buttons then focus on consistency with the previous screens.
submit
to the left ofcancel
, but it's not by any means universal.