As acl points out, [this post](https://mathematica.stackexchange.com/a/1449) shows you how to setup error highlighting for invalid number of arguments. Coming to the actual error messages used, there are three built-in messages attached to `General`, that can be used for your own functions as well. These are `argx`, `argrx` and `argt`:

    General::argx
    (* "`1` called with `2` arguments; 1 argument is expected." *)
    
    General::argrx
    (* "`1` called with `2` arguments; `3` arguments are expected." *)
    
    General::argt
    (* "`1` called with `2` arguments; `3` or `4` arguments are expected." *)

You can attach these messages to your own functions (any message defined for `General` can be used for any other symbol) like in the following example (shown only for `argx`):

    ClearAll@f
    SyntaxInformation[f] = {"ArgumentsPattern" -> {_}};
    f[1] := True
    f[_] := False
    f[_, x__] := Message[f::argx, "f", Length@{x} + 1]
    
![](https://i.sstatic.net/pqef0.png)