Rotom can be found at level 20 as an event battle in Old Chateau inside a television during night time. Cut is needed to access the location, and you will probably need a repel or two to make it there without running into a Gastly. Note that this event is post-National Dex only in Diamond/Pearl, but in Platinum it is available as soon as you can access it.
As a Pokémon that does not evolve into anything else, Rotom comes with very strong base stats for joining time, since the player is likely still lugging first/second stage Pokémon. While this does change as the player progresses and evolves their team, Rotom's usefulness extends beyond its stats. Its defensive capability is deceptively high, as its unique typing and ability allows it to wall entire movesets often, and electric STAB is always useful in-game as water-types are extremely abundant. While it doesn't have notable non-STAB offensive moves, it learns Substitute by level (which breaks AI in hilarious ways, and Rotom is one of its best users due to resistances and decent speed), and can access to things like Thunder Wave, Confuse Ray and Double Team on its level-up moveset as well, or set up screens too if that's your thing. The only downside is that it wants that Shadow Ball TM badly (Ominous Wind is a horrible move), so it's not very compatible with many psychics who may also want it.
Another thing of note is that if the player has access to the Secret Key, they can change Rotom to one of its five appliance formes in Team Galactic's Eterna base. Not only does it adds a potentially useful coverage move, it also trades 5 base speed for a gigantic boost in defense and a smaller but still useful boost in special attack as well, making it even more powerful. However, since Secret Key is basically impossible to obtain on a fresh runthrough at this point (without cheating), most of what's here will be based on its normal forme. It's worth noting that the appliances will not change Rotom's typing in DPPt.
Jupiter (Galactic Eterna Building): Rotom should easily outspeed Zubat even with zero training and one-shot it with Thundershock. It should stay away from Skuntank and its Night Slash though.
Gym #3 - Fantina (Hearthome City, Ghost-type): It's probably best for Rotom to sit this one out too, as it's likely to lack even Ominous Wind at this point and will thus take super-effective damage without being able to dish any back.
Rival (Hearthome City): Staravia is dead meat and complete setup fodder to Rotom, who can use the opportunity to set up Double Teams if you desire. Buizel and Prinplup will easily go down as well, and while Roselia and Grotle can be difficult to hurt without a forme change, a sufficiently evasive Rotom will be able to deal with them in time.
Gym #4 - Maylene (Veilstone City, Fighting-type): Rotom can deal with Meditate and Machoke, although it will probably get hit with a couple of Rock Tombs in the process. It completely laughs at Lucario though, as the latter is unable to use most of its moves on Rotom, being stuck with only a weak, half damage Metal Claw.
Rival (Pastoria City): Staravia is still setup fodder. The only change is if the rival has Grotle, it will have access to Bite. It shouldn't 1HKO Rotom who should definitely have a good Ghost move for hurting it back by now, but it may be best to not tempt fate regardless.
Gym #5 - Crasher Wake (Pastoria City, Water-type): If Rotom has Thunderbolt, Gyarados will definitely be 1HKO'd. It does have Bite though if Shock Wave misses the KO or Thunder plain misses. Quagsire is immune to electric, has enough defense to survive a Shadow Ball or two, and can fight back with Yawn, but Rotom might be able to goad it into wasting turns with Substitute. if you bought the TM early. Floatzel knows Crunch and will likely outspeed, so if Rotom must deal with it, make sure it knows Reflect and set it up beforehand. (An intact substitute would work too)
Cyrus (Celestic Town): Sneasel doesn't have a Dark move, and the other two are frail and easily fried with Thunderbolt.
Rival (Canalave City): Not even evolution can save Staraptor from being a setup fodder. Heracross's Night Slash will hurt though, but with Reflect Rotom will KO it before it KOs back. Barry's Floatzel only knows Pursuit so it's not a threat even if it outspeeds, and the only possible vexation is Torterra who can use Bite. If Rotom must fight it though, Reflect and/or a Sub from previous battles will still allow it to win.
Gym #6 - Byron (Canalave City, Steel-type): Magneton and Rotom are both stuck with NVE moves against each other, but Rotom can have moves like Substitute to capitalize on it. Steelix is much the same (Ice Fang won't hurt much). Bastiodon will likely try to Metal Burst though, so set up a substitute first. Rotom won't be able to 1HKO it, but even with Stone Edge it won't OHKO back either.
Saturn (Lake Valor): Golbat is easily fried, but Bronzor knows Shadow Ball and Toxicroak knows Faint Attack. It might be able to deal with Bronzor with a Light Screen, but Toxicroak is far less likely without a forme change.
Mars (Lake Verity): Golbat, yeah. Mars's Bronzor knows Extrasensory instead of Shadow Ball so it's easy to deal with. Purugly's Faint Attack is far more survivable than Toxicroak's, but it will also get the jump on Rotom and can use Hypnosis as well, so if Rotom has to deal with it make sure it has a substitute up.
Gym #7 - Candice (Snowpoint City, Ice-type): Sneasel and Froslass are no good, but Piloswine is possible with support moves. Abomasnow is more difficult with its auto-hail and better stats, and while it's possible for Rotom, it's far easier to just get someone else to capitalize on one of its weaknesses instead.
Cyrus (Galactic HQ): Sneasel still has no dark type moves and Crobat is still easy meat (though it will probably get one move in before dying). Honchkrow is slow and doesn't have good special defense, but Rotom should only approach with confidence in its special attack (and no safer options), as the crow will 1HKO back with Faint Attack if it survives.
Saturn (Galactic HQ): Like the last time, Golbat is easily fried but Bronzor is trouble and Toxicroak should not be approached unless the player has no other options.
Mars and Jupiter (Spear Pillar, tag battle with rival): If you must start with Rotom, note that both Bronzors will put up screens on the first turn. Without oven forme's Overheat Rotom is probably not killing them in one shot, so put up Substitute and stall until they run out, then kill the left Bronzor first. Golbat is still easily fried (and can be used as setup fodder), but Purugly's Shadow Claw and Skuntank's Night Slashes are to be treaded lightly around, and if both are on field at the same time, someone on the team is probably going to die unless Rotom has Protect or Reflect is up.
Cyrus (Distortion World): Don't start with Rotom as Cyrus will start with a Houndoom. Honchkrow is still best approached only if Rotom has decent special attack scores and there isn't any safer option, and Weavile is not even worth considering. Crobat and Gyarados are easily dealt with by Thunderbolt, however.
Giratina (Distortion World): Just throw a Master Ball at it or something. If you must catch/fight it conventionally, Rotom has a chance to win a free turn with both Substitute and Protect and either paralyze or 2-shot it with Shadow Ball, but it banks on Giratina using Shadow Force before Rotom runs out of HP setting up subs.
Gym #8 - Volkner (Sunyshore City, Electric-type): Rotom completely walls Jolteon and Raichu, but Luxray knows Crunch and thus shouldn't be approached without a prior substitute. Electivire's Fire Punch isn't too bad if Rotom has Reflect or full health.
Rival (Pokémon League, pre-Elite Four): Poor Staraptor still doesn't have an effective move against Rotom, but the rest of his team aren't so kind, with almost all of them packing a super effective move of some sort (only exception is Rapidash). Rotom should still be able to deal with Empoleon but without Substitute and ample evasion boosts it won't be able to fight through the rest.
Elite Four Aaron (Pokémon League, Bug-type): Scizor and Heracross are best avoided as they have powerful Night Slashes and decent defenses, but Yanmega and Vespiquen are easily KO'd and Drapion oddly doesn't have a Dark move, meaning that Rotom will easily win against its unSTAB'd Ice Fangs.
Elite Four Bertha (Pokémon League, Ground-type): Hippowdon knows Crunch and thus should not be approached. Rotom has more even matchups on the other enemies, but Bertha likes to put up Sandstorms which can add up to Substitute's HP drain. Don't count on Rotom to deal with her entire team, but with the exception of Hippowdon it can easily take care of one or two of them if the team isn't up to dealing with a specific threat.
Elite Four Flint (Pokémon League, Fire-type): He starts with Houndoom which Rotom doesn't have a chance against. Flareon can be stalled out with Substitute as its only effective moves are Overheat and Will-o-Wisp, but without setting up right there Rotom will have a hard time dealing with the rest of Flint's team's powerful fire moves.
Elite Four Lucian (Pokémon League, Psychic-type): Although Rotom has type advantage on the opposition, it cannot really rip through them. Mr. Mime is fairly easily KO'd and will only set up screens in response if Rotom fails to outspeed (in which case stall a bit until they run out), but Alakazam and Gallade will outspeed and likely survive a hit respectively and hit back pretty hard (having Reflect will ease worries against the latter), and it should not really attempt Espeon (who outspeeds and hits with Shadow Ball off 130 base special attack) and Bronzong (who will use Rotom as setup fodder for its Calm Minds).
Champion Cynthia (Pokémon League): Rotom will do great against Togekiss, as it will only take a very weak Water Pulse. Milotic knows Mirror Coat, but Substitute will neuter that threat, then Thunderbolt will easily 2HKO at worst. Roserade is an even matchup in terms of types, but it will likely outstrip Formeless Rotom in terms of stats, so only attempt if Rotom has at least a sub up. Spiritomb and Lucario can both Shadow Ball (and are not easily KO'd back in response), and Garchomp is just plain too powerful.
Post-Game: Rotom will FINALLY have access to a decent coverage move in Signal Beam, although learning it will mean that Rotom will only have room for one support move. Beyond that, it will likely perform as it had before; find something it walls, set up and own. Against a major trainer, research of their moveset is the key to let Rotom find a chance to do its thing without going down to a surprise Crunch or the like.
Rotom starts with Thundershock, Confuse Ray, Uproar and Double Team, which aren't fantastic but enough to keep it going against random trainers at least. In terms of level-up moves, it learns Shock Wave in two levels and Ominous Wind at 29, which are servicable STAB moves for a while (although the latter having only 5 PP hurts). Substitute at 36 is what makes Rotom great - although it is universally available as a TM, Rotom is one of its best users and being able to learn it on level-up allows you to switch out and in for much cheaper price as the TM isn't cheap. You can also relearn Thunder Wave, which might be useful on the fourth slot. Discharge is available at level 50 but you should have access to Thunderbolt long beforehand, and Rotom really needs all the extra power it can get in the end-game.
The most notable TM move it gets is Shadow Ball, which is a much better move than Ominous Wind, but there's only one of it without Battle Tower or trading. The other big thing is Thunderbolt which is actually reobtainable somewhat easily, and should be slapped on as soon as you can afford/find it. Reflect and Light Screen are cheaply available and can be swapped in on the fly to deal with specific opponents. Once you have access to post-game it can learn Signal Beam from the Survival Area tutor.
Recommended Moveset: Shadow Ball/Ominous Wind, Thunderbolt, Substitute, Thunder Wave/Confuse Ray/Double Team/Reflect/Light Screen (pick whatever's appropriate for the situation)
Minimum stats are calculated with 0 EVs, IVs of 0, and a hindering nature, if applicable.
Maximum stats are calculated with 252 EVs, IVs of 31, and a helpful nature, if applicable.
What Nature do I want? There's only one of it in the game so you kind of don't have any choices in a nuzlocke. Still, you might want to look into an alternative if it has a speed hindering nature as it's the one stat Rotom needs very badly. Special Attack is also useful but isn't as troublesome to be hindered. Obviously an attack hindering nature is a plus, and Timid is probably the holy grail nature for a Rotom to get.
How good is Rotom in a nuzlocke? Any electric-type is always useful for dealing with the myraid water-types in the game, and STAB on thunderbolt is often needed to securely KO on all those Gyarados you'll meet. Thunder Wave is also helpful to catch things. Beyond that though, Rotom's usefulness depends on how much the user is willing to research opponents and set up its gameplan, since it doesn't have the raw stats or coverage to simply sweep past the opposition by spamming offensive moves alone, or tank through everything without a thought (without a forme change at least). If it is used correctly, the synergy between its substitute and its resistances, boosted by other useful support move it gets, will allow it to easily beat even opponents that have the upper hand on types and/or stats. The fact that it is a guaranteed encounter also helps, as you can always count on it being available.
Weaknesses: Dark, Ghost
Resistances: Flying, Poison, Bug, Steel, Electric
Neutralities: Rock, Fire, Water, Grass, Psychic, Ice, Dragon