As far as I can tell, they all mean the same (this evening, tonight), the difference is how frequently they are used in real life: 今夜 - the most frequent; 今晩 - frequent, has more formal tone, IMO (used in greetings etc.); 今夕 - rarely used, never really encountered it in real texts; 今宵 - very rarely used.
Japanese has A LOT of ways to say the same thing. English is this way too, but not that much, I think. For example, you can say just 'watch', or you can say
observe (scientific undertones) behold (archaic, literary) oversee (undertones of 'check if everything is the way should be') supervise, inspect (often the same as oversee, but since it's Latin, it's more formal)
With Japanese it's pretty much the same, but with unique taste to it: 1. you have native Japanese words (like みる); 2. you have lots of undertones that are shown only in writing (みる can be written 見る (see, look, watch), 観る (more like 'to observe') and some other ways); 3. you have words borrowed from Chinese which are read by their on'yomi, and just by adding -する to nany of them you can have the verb which means 'do X', and so you can have 観察する (to observe, but sounds more 'serious') and, again, many others; 4. not to mention the honorific speech and all that
The difference here is how often and when they are used. You just watch a movie, but you usually don't just watch but observe how an experiment proceeds, and you supervise one's work, not just watch him or her, etc.