You should look on ow WordPress Plugin Api works.
When you add a filter, the function that hook into that filter receive the argument from the function:
This function pass at least one argument, but can pass more, and always aspect a value returned.
So if you can write
add_filter( 'walker_nav_menu_start_el', 'description_in_nav_el', 10, 4 );
is because somewhere in the code there is a line that appear something like:
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
So the argument you can use, are passed to your function via
apply_filters and they are generated in the function that contain that line.
when you want to know more on a hook, first play where to see, is Codex, however not all hooks can be founded there, in that case best place where look is code.
I think you use a software to write your code, and most probably that software have a search feature among all files in a folder1, so once you know what to search:
try yourself, you'll find the file
/wp-includes/nav-menu-template.php at line 169 contain just the line I posted above, inside the method
start_el of the class
1 If you are familiar and use any Unix SO, of course you'll have easier life using
grep, but in that case, you already know it...