Cut avocados in half, remove the seed and scoop out the inside into a bowl or mortar. Mash using a fork or the pesile until it is smooth with little chunks.
Mix in salt and lime juice and any of the suggestions above except for tomatoes; tomatoes should be stirred before serving as to not water down the dip.
Serve right away or wait an hour or two to let the flavors meld.
Use ripe avocados. Stripped to the bare minimum, guacamole is avocados, salt and a squeeze of lime for freshness. Therefore making sure your avocados are ripe is very important. Underripe avocados will be hard to mash and a bit tasteless, whereas the flavor of overripe avocados can be a bit off.
Best if made a little ahead of time - but not too much. Making guacamole a bit ahead of time will allow the flavors to meld together so that each bite has a bit of each flavor profile. Yet, if it is made too far ahead it can go brown without proper storage (see below!).
You be the judge. Someone in your group doesn't like cilantro? It's easy to omit. The same can be said for jalapeños, tomatoes and onion.
Test taste with what you are serving it with. Having made guacamole many times, I take the recipe below as a guideline and judge the amount of each ingredient based on how it's being served. With tacos, I may decide not to add tomatoes so that they can be a topping on their own; and when I'm serving guacamole with Tostitos I may cut back a bit on the salt since the chips are salty as well.
Storage. Storing guacamole (or avocados for that matter) can be a bit tricky but it is best to make sure there is no air contact so that it stays green! Personally, after making the guacamole, I transfer it to a container and layer a sheet of plastic wrap over it pressing down to make sure there is no air between the wrap and the guacamole. Alternatively, although I have not tried it, you can pour a layer of water over it to make a seal and pour it off when you need it!