Am I allowed to write long posts that nobody is going to read?
Anyway, I've seen loads of people want "more accurate/Special Rock moves" or "Grass type Stealth Rock". However, few seem to take into account that each Pokémon type has a certain "theme" to it. Of course, with there being loads of Pokémon of every type, there will always be exceptions to the norm, but as a general rule of thumb, there are some characteristics that can be applied to most Pokémon of every type:
Rock types are rugged, heavy types. They lean heavily to the physical side, fighting their enemies with raw strength, and taking hits like the boulders they usually are. They are also rather simple-minded and slow, preferring power over reliability. Rock Pokémon use moves with high power and low accuracy (most of which involve throwing boulders).
Water types are plentiful and a diverse group. Their
stats are overall very rounded out, not leaning heavily one way or the other. Seeing as water is everywhere in several different shapes in the Pokémon world, there will be very many different Water types too. This is reflecting the rich aquatic life found on Earth. Water fits everything, sort of. Note that comparatively few Water moves have any side effects.
Electric types are a cool bunch. They use electricity to defeat their opponents, and they are found mostly in forests and urban areas. Electric Pokémon focus mainly on two things: Speed and offense. Their offense might be contact-based or involve arcs of lightning, either way they hurt. Electric Pokémon are also fond abusers of the Paralysis status.
Grass types thrive in sunlight. Their moves often fall into one of three categories: Those focused on energy (nutrients from the ground/the enemies), those focused on the herbal properties of plants, and those focused on slashing their opponents with sharp leaves. Note how most Grass Pokémon use weather to their advantage.
Poison types work best when they don't face their enemies on even terms. Very few Poison Pokémon can do very well in an open fight, so they use nasty techniques to disadvantage their foes. Their moves don't have much base power, but their stings are still deadly. Poison moves focus on weakening the foe gradually, letting them fall over time or become easy targets for stronger allied 'mons.
Psychic Pokémon are similar to Poison, in the sense that they work to turn the conditions of the battle to their advantage. But rather than crippling their enemies, they buff themselves. Using mindpower to overcome their foes, Psychic Pokémon are almost always better in the Special department than the Physical. Damage-dealing Psychic moves usually focus on hurting the enemy without touching them.
Fire types are very often offensive, but can't take hits very well. Their strategies focus on hitting the targets with all-consuming flames, perhaps crippling them in the process, and pray that they won't be able to retaliate. While their moves aren't always that accurate, they sure wreak havoc once they connect.
Ground types are similar to Rock types in that they are a slow, physical bunch. But Ground 'mons don't hit as hard or reckless as Rock types. Ground moves are reliable, but not all that powerful (except for that one move...), though they are usually backed by a high offensive stat. Ground Pokémon aren't unstoppable forces, but they are certainly hard to avoid. Slow and steady does the trick for Ground types.
Flying types are... well... complementary. Flying Pokémon have no defining characteristic on their own, seeing as for flying to occur, you have to have something that flies. That something is a very diverse group of Pokémon of (nearly) all types. Flying-type moves are usually about using the aerial capabilities of the Pokémon to attack, coming from above and hitting in surprise. Beaks, wings or the force of the latter beating, are used to strike the foe. Many Flying Pokémon underperform a little on the defensive scale. After all, they have to be somewhat light to fly. In the end, Flying types are usually another type first and foremost and Flying second.
Bug types are usually annoying little critters. They come early in the games, and with a few exceptions they are among the weakest of Pokémon. Bug types help you fill out a team early in the game, but most of them will quickly be outperformed by stronger Pokémon you come across later. That being said, those that aren't totally mediocre are usually
awesome, hitting hard or taking one hell of a beating before they go down. Bug moves are riddled with secondary effects, making up for their usually lackustre power.
Normal Pokémon make up a very large number of mammals. Normal types are usually quite okay, but rarely very good. They have a huge amount of talents, but don't stand out in any of them. Their
impressive list of moves have secondary effects all over the place. Jacks of all trades but the master of none, Normal types will rarely disappoint, they adapt to any environment, can be found almost anywhere and fill any role on your team, but they are usually outclassed by something else.
Ghost types are a sinister bunch. Like Poison Pokémon, they seek to cripple their enemies, but their methods are even more refined, their arsenal of crippling moves even bigger. Ghost moves are weak power-wise, but their secondary effects will have enemies crying before long. They can lower almost any stat and hand out almost any status, and their moves will always hit. You can stand against their power, but sooner or later you have to submit to their secondary effects.
Fighting Pokémon are, with only a handful of exceptions, all humanoid. Two arms, two legs, and a sky-high Attack stat. They hit hard, reliable, and where it hurts. Overwhelmingly Physical, Fighting types battle the simple way: appendage meeting body.
Steel types stand out in one area: Defense. Oh, and weight, I guess. Steel types are late-game Pokémon, because battling them requires a certain knowledge about the type chart. As a general rule, your attack will be not-very-effective against a Steel Pokémon. Luckily for you, few of them can hit you very hard back either (but seriously, watch out for those who can). Pure Steel Pokémon are very rare, and apart from that high Defense Steel types are actually a very diverse bunch with many different characteristics. Dual-types will usually have the characteristics of their other type turned up to eleven.
Ice types are also very diverse, with balanced stats and filling many roles. However, they all have one thing in common: These Pokémon only reside in extreme conditions. Apart from urban Vanillish, you have to go far out in the wilderness to find an Ice Pokémon. And once you catch it, you've got yourself a... well... depends, really. Ice types are rather mediocre as a general rule. Elusive, yet frail and not particularly hard-hitting. Their redeeming factor is that their moves hit many types super-effectively. They are also the only type to stand against Hail, and they may induce the dreaded Freeze status.
Dark types are sly and cunning. They are frail and fare poorly in open combat, but when the odds favor them they break stuff. Dark type moves are weak until the conditions are right. While they have no moves with a base power over 100, some of their other moves reach terrible power if the opponent has made a poor choice. Combined with the usually high Attack stat sported by Dark Pokémon, that move might cost them a Pokémon. Dark Pokémon are truly dangerous if they can exploit their opponent (or just have luck on their side), but in an open field, they are usually rather mediocre.
Dragon types were saved for last, for a reason. While all the other types have their quirks, their pros and cons, the Dragons are the cream of the crop. Truly dangerous endgame Pokémon, they are hard to train but immensely powerful once raised properly. Dragons are meant to be the "
infinity plus one sword", the reward you get for winning the game. With Dragons on your side, you will plow through stuff. Dragon moves are powerful and resisted by almost nothing, and that "almost nothing" is taken care of by other moves in their immense movepools. Dragons might seem overpowered, but that's also meant to be the case.
In short, the types ARE different. With a few exceptions here and there. Not every type can get powerful attacking moves with good accuracy, because those moves don't fit their flavour. Though, I'd expect those patterns to be broken gradually in the future as more and more Pokémon are introduced of every type.