In the current paper I am writing I make an extensive use of definitions, therefore I've added the amsthm package to my document and I've defined a new command:
\newtheorem{definition}{Definition}
so that I can call it in my document in the following way:
\begin{definition}
...
\end{definition}
Everything works ok, but I would like to change the appearance of these definitions, giving them a cleaner look. By default, this is how the definitions look like:

This is what I would like to have:
- Make the text normal and not italicized, so that
\emph{}commands can look the way they are supposed to - After Definition 10 I would like to have the name of the defined notion, so for example: Definition 10 - Algebra
- I would like to break the line after the end of the definition heading, so that the actual definition begins on the following line
- Finally, it would be nice to have a way to separate the definition title from the definition itself, for example with a line above and below the definition title (something like a box)
Are all of these things possible?

amsthmhas three theorem styles, two of which have roman text. this answer explains the differences. – barbara beeton Feb 18 '13 at 19:15