Thanks to this wizard's answer in the below question, based on which I am framing my answer to pull of this trick (Do not blame if SF stops supporting or jacks up JS support as they did with home page components):
Changing the color of a custom button
Step 1: Create a fake submit for approval (or) name it anything you want
Step 2: I have the logic to hide the button based on stagename, you can use your any field and make this button disappear conditionally on page load.
var buttontohide = document.getElementsByName('submit');
var fakesubmitbutton = document.getElementsByName('submit_for_approval_custom');
var stage = $("[id$=opp11_ileinner]").text();
buttontohide.style.visibility = 'visible';
fakesubmitbutton.style.visibility = 'visible';
Step 3: Add this new button to the page layouts of the users who you wish to disable the submit for approval button.
Button syntax should look like :
when stage = prospecting ( submit for approval is not visible)
when stage != prospecting the submit button is visible.