You can use a different tag instead of input and apply FontAwesome in the usual way.
instead of input with type image you can use this:
<i class="icon-search icon-2x"></i>
quick CSS :
.icon-search { color:white; background-color:black; }
Here is a quick fiddle: DEMO
You can style it a bit and add an event function to the i object, which you can do using the <button type="submit"> object instead of i or with javascript.
The button solution will look something like this:
<button type="submit" class="icon-search icon-large"></button>
And CSS :
.icon-search { height:32px; width:32px; border: none; cursor: pointer; color:white; background-color:black; position:relative; }
here my violin is updated with a button instead of i: DEMO
Update: using FontAwesome in any tag
The problem with FontAwsome is that its style sheet uses :before pseudo-elements to add icons to the element - and the pseudo-elements do not work / are not allowed on input elements. This is why using FontAwesome in the normal way will not work with input .
But there is a solution - you can use FontAwesome as a regular font like this:
CSS
input[type="submit"] { font-family: FontAwesome; }
HTML:
<input type="submit" class="search" value="" />
Glyphs can be passed as values โโof the value attribute. The ascii codes for individual letters / icons can be found in the FontAwesome css file, you just need to change them to an HTML ascii number, for example \f002 , to  , and it should work.
Link to FontAwesome ascii code ( cheatsheet ): fortawesome.imtqy.com/Font-Awesome/cheatsheet
The size of the icons can be easily adjusted using font-size .
See the above example using the input element in jsfidde: