FIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRST. You need to make sure your computer and internet can handle a server's strain.
Go here -->
http://www.speedtest.net and click that button that says BEGIN TEST in huge epic letters.
It'll tell you your upload and download speed.
Now, go here -->
http://canihostaminecraftserver.com and fill in the Upload and Download fields, you got the info from SpeedTest. Also, fill in the amount of RAM you have, in MB (NOT GB. NOT. NOT. NOT.) Multiply your GB of RAM by 1000 to get the MB. Got that? Fill it in. Now, click the shiny Tell Me What I Can Run? box, and see if it gives you the go-ahead.
Now, assuming that's all well and good (which I seriously doubt, due to your 'dial-up' connection), here we go.
You run Wind'ohs, right? Well, go here -->
http://www.minecraft.net/download and find the Multiplayer Server thing. It'll show you the link for 'Minecraft_Server.exe' which is 802KB. Download it, and run it IN ITS OWN FOLDER, NOT IN DOWNLOADS, otherwise all the essential files will be ♥♥♥♥ to find. It should create some files in the folder. DON'T GO THERE YET.
Now, go here -->
http://ipchicken.com and it'll show your IP, this is what people will connect to your server with. Now, port forwarding.
Ah.
Go here -->
http://portforward.com/ and hit Ctrl+F. Find out what your router's model is, and type it in the Ctrl+F box that appeared. If it finds a result, click the link and follow the instructions. Otherwise: type the IP (that's what you found earlier, remember?) into the address box, where you type in website names, do the login info (have a little Google to find the default login info for your kind of router, it's EXTREMELY unlikely anyone has signed into your IP before), and poke around a little for a Port section. Follow whatever instructions you have.
Always make sure that the port you're opening is 25565, unless you changed something in the server.properties file, which I'll get to later.
Now, if that's all well and dandy, go back to your folder with the Minecraft_Server.exe file in it. Find the file called admins/admin or whatever, and open it. Now, it'll be blank, right? Just type your Minecraft username into it (JUST the username), save and close.
Now, join your own server by going into the Multiplayer window on Minecraft, and adding your server. For the name, put in whatever you want, and for the IP, type localhost. Now, join. If there's a new world, then that's good. Now, test out if you're an admin by running the command '/gamemode
username 1'. If you can do that, you have op powers, and WAY WAY WAY more likely admin powers!
The final step is to see if others can connect (assuming your internet IS good). Give the others your IP (that thing you found ages ago?), and if they can connect, YAY!
Now, for optional stuffs.
Find the file called server.properties, and open it with Notepad (or Notepad++ or whatever), you'll be faced with lots of options. This is already explained on the Minecraft Wiki, but I'll make my own version of what they all are:
level-name: This'll be the name of your main server world (the one people are in when they join), and also the save file name. If you want to make it your own world, just copy-paste your savefiles in.
allow-nether: Self-explanatory. Set to true if you want people to enter the Nether, false if not. (Although I see no reason why people can't go to the Nether.)
view-distance: How many chunks are sent to the player, measured by radius. Can be entered from 3-15, default is 10. Reduce if you have MAJOR lag.
spawn-monsters: True if you want creepers and stuff to spawn in the night, false if not.
online-mode: True if you want people's accounts to be checked before they join, false if not. WARNING: lse will mean people with non-premium accounts can join your now-'cracked' server.
spawn-animals: True if you want cows and cute piggies and other stuff to spawn, false if not. (WHY WOULD YOU SET IT TO FALSE UNLESS YOU HAVE SUPER-LAG D:)
max-players: How many people can join at the max. Ops don't count against the count, but still cannot join a full server.
server-ip: Blank, defaults to your IP. Only set if you want it to run on ONE paticular IP!
pvp: True if you want others to be able to beat the crap out of and kill others, false if not. (please true so I can snipe Kirb)
level-seed: Probably pointless once you've joined the server and the world's made. But still, enter your seed for the world here.
server-port: Only change if you MUST run on a different port. For example, if you had to open port 52362, people would add ':52362' onto the end of your IP.
white-list: I think you'll know how this works. If true, go to the file white-list.txt to add people.
allow-flight: If true, people with fly mods can fly. If false, everyone obeys gravity.
gamemode: 0 for Survival, 1 for Creative.
difficulty: 0 for Peaceful, 1 for Easy, 2 for Normal, 3 for Hard. Defaults to Easy Modo. (you wimp)
motd: The message thing that's displayed below the server name. In Suyo's example, it's 'Suyos Humble Server'.
enable-query: Just something technical that allows some site to get info or something.
enable-rcon: Allows remote access to the server console thing; although I have NO idea how this works.
rcon.password: The password used if 'enable-rcon' is true and a remote console is used.
rcon.port: The port for the remote console thing.
query.port: The port for the technical info thing's server.
And that's basically it, I think.