Is that why ethereum is considered to have a lot of potential?
In other words, what does ethereum offer that other blockchain technologies can't replicate.
Bitcoin also supports a scripting language, which essentially allows a list of instructions (smart contracts) to be recorded with each transaction describing how the next person wanting to spend the Bitcoins being transferred can gain access to them.
However state storage on the Bitcoin blockchain is limited to transaction values and metadata limited to 80 bytes and its content is not verified on the blockchain.
This is the key gap that Ethereum addresses with its blockchain --i.e. you can store arbitrary state associated with the contract and its transitions are also verified on the blockchain, as defined by the rules set by the contract.
P.S. as mentioned by 5chdn, Turing completeness is an other distinction, however this distinction is only really practically relevant if your contract is heavy on loops.
First of all, the whitepaper is really a good read and even for non-techie people easy to understand.
The main uniqueness of Ethereum is the turing-completeness.
A computer is Turing complete if it can solve any problem that a Turing machine can, given an appropriate algorithm and the necessary time and memory.
The english mathematican Alan Turing imagined a machine in 1936 which could solve any (mathematical) problem.
Now, Ethereum has it's own programming languages which can be executed on the blockchain inside the Ethereum Virtual Machine (EVM). This means, from now on you can solve any problem on the blockchain. This might change how the internet will work in the future. It might even change how computers work in the future.
There is no similar project that has tried such an approach before.
Blockchain or not, virtually all technologies can be replicated. (If you consider the human brain and the universe as technologies, then they are the sort that haven't been replicated.) What's not easily replicable with technologies and blockchains are their user base and network effects. (On a legal aspect, patents can prevent replication for a time.)
Adding and synthesizing @Zanzu and @5chdn answers, Ethereum's Turing-complete programming language was what garnered attention. However, the key to smart contracts is statefulness as Vitalik Buterin explained:
... some Bitcoin people continue to emphasize "Turing-completeness" when I have said multiple times that it's statefulness that is the point. Once you have Ethereum's philosophical model (and imo, our approach of viewing scripts as "doing stuff" rather than being "predicates" is massively superior and vastly easier to understand for developers), then Turing-completeness actually becomes harder not to have than to have - it's actually tricky to figure out what restrictions to put on recursive contract calling to eliminate the potential for loops, and some measure of gas is required in any case for the same reason why a block size limit is required in bitcoin.
Academic research on Zero-Collateral Lotteries in Bitcoin and Ethereum explains:
Ethereum provides a programming language resembling an actor-based process calculus — each “smart contract” process is defined as a behavior that reacts to each an input and potentially modifies a local state or sends messages to other processes. Although this language is fairly general, the environment is well-known to be error prone [30, 15]. In principle, the language is Turing complete, however execution times are limited by transaction fees, called “gas”, which are charged by the instruction. In contrast, the Bitcoin scripting language is mainly focused on signature verification, and can express a policy for accepting or rejecting a transaction, but cannot alter the effect of that transaction if accepted... A goal of our work is to better understand how the design of each language affects its usefulness by focusing on a particular task, the N-player lottery.
The paper concludes with pros and cons of Ethereum and Bitcoin programming interfaces:
Compositionality of Ethereum vs. Bitcoin. Bitcoin and Ethereum both provide smart contract programming interfaces. However, the philosophy between the two are markedly different. Ethereum favors generality and expressiveness, while Bitcoin is intended to provide a small attack surface. While Bitcoin has gradually expands the expressiveness [5, 40, 17] of its language, Ethereum begins with a “Turing complete” language intended for general-purpose use. Many desirable functionalities, such as micropayments, joint accounts, kickstarter-style assurance contracts, can be implemented in either language [20, 13]. A virtue of the Ethereum language design is that contracts provide a nicely composable abstraction, which our Ethereum protocol makes use of. In fact, Ethereum’s process-based model (each contract is effectively an independent process in the operating system) closely matches the pseudocode used in cryptography. [24, 29] Based on this experience, we make a general recommendation that when developing a new cryptocurrency application, one begins by first a simple model in generic Ethereum-model pseudocode, and then adapt it to a Bitcoin-specific implementation if desired.