Your 2 main sources of input lag are going to come from your display and the emulator you are using and both will vary depending. There are things you can do but just how much you can do will depend on your setup. Are you gaming through a modern TV (not CRT) ?
Display input lag on a TV is going to be the largest contributing factor. Make sure you set your TV to "game mode" look in your manual on how to do this or look through your TVs menus. Keep in mind however that "game mode" is still going to be relatively high when compared to a PC monitor.
The other factor is your choice of emulator being used and depending on which emulator you are using you may or may not be able to do anything about it. I don't know of any stand alone emulators that allow you to make any adjustments that make any significant difference to input lag but with Retroarch there are some settings adjustments you can make.
If you are using or you are willing to use Retoarch here are the settings you can change to make some significant improvements.
Go to the Video Settings and you will want to change the following:
Threaded Video should be set to Off if it is not already.
-V-Sync should be enabled, even though this setting itself can contribute to input we will be making some changes in other settings to make it better.
-Max Swapchain Images, set this to 2, 3 is the default setting. This setting is fairly minimal in terms of input lag but setting it to 2 is the best option.
-Hard GPU Sync, turn this on if it is set to off. Off is the default setting.
-Hard GPU Sync Frames, make sure this is set to 0, any higher than 0 adds to input lag.
-Frame Delay, this is the big one and where you will make the most gains on reducing your input lag outside of your display. There is no magic number for this setting I can give you for this setting unfortunately, you will have to play around with it to find what works best for your system and it will vary from core to core. The default setting here is 0 which is a safe default but the higher you can push this number the lower your input lag will be, the side effect of this is the higher you push it the more CPU hungry the emulator core becomes so a CPU intense core such as BSnes or Higan won't allow you to push the Frame Delay setting as high as the Snes9x core which is much less CPU hungry. What you want to do is push it up until you start to hear crackling in your audio and then pull the setting back 1 or 2 notches so there is no more audio issues and your framerate is a solid 60 fps (turn on the fps counter for testing). Every number you can push on the frame delay setting is 1ms of input latency removed.
In the end if you want the best experience and least amount of input lag you will want to game on a PC monitor (high end gaming monitor is best but not necessary) and use Retroarch with as high of a frame delay setting as your system can handle.